1. 程式人生 > >Redis常用特性

Redis常用特性

釋出訂閱

·伺服器狀態在pubsub_channels字典儲存了所有頻道的訂閱關係:SUBSCRIBE命令負責將客戶端和被訂閱的頻道關聯到這個字典裡面,而UNSUBSCRIBE命令則負責解除客戶端和被退訂頻道之間的關聯。

·伺服器狀態在pubsub_patterns連結串列儲存了所有模式的訂閱關係:PSUBSCRIBE命令負責將客戶端和被訂閱的模式記錄到這個連結串列中,而PUNSUBSCRIBE命令則負責移除客戶端和被退訂模式在連結串列中的記錄。

·PUBLISH命令通過訪問pubsub_channels字典來向頻道的所有訂閱者傳送訊息,通過訪問pubsub_patterns連結串列來向所有匹配頻道的模式的訂閱者傳送訊息。

·PUBSUB命令的三個子命令都是通過讀取pubsub_channels字典和pubsub_patterns連結串列中的資訊來實現的。

 

更多命令

http://www.runoob.com/redis/redis-pub-sub.html

 

事務

Redis通過MULTI、EXEC、WATCH等命令來實現事務(transaction)功能。事務提供了一種將多個命令請求打包,然後一次性、按順序地執行多個命令的機制,並且在事務執行期間,伺服器不會中斷事務而改去執行其他客戶端的命令請求,它會將事務中的所有命令都執行完畢,然後才去處理其他客戶端的命令請求。‘

·事務提供了一種將多個命令打包,然後一次性、有序地執行的機制。

·多個命令會被入隊到事務佇列中,然後按先進先出(FIFO)的順序執行。

·事務在執行過程中不會被中斷,當事務佇列中的所有命令都被執行完畢之後,事務才會結束。

·帶有WATCH命令的事務會將客戶端和被監視的鍵在資料庫的watched_keys字典中進行關聯,當鍵被修改時,程式會將所有監視被修改鍵的客戶端的REDIS_DIRTY_CAS標誌開啟。

·只有在客戶端的REDIS_DIRTY_CAS標誌未被開啟時,伺服器才會執行客戶端提交的事務,否則的話,伺服器將拒絕執行客戶端提交的事務。

·Redis的事務總是具有ACID中的原子性、一致性和隔離性,當伺服器執行在AOF持久化模式下,並且appendfsync選項的值為always時,事務也具有耐久性。

 

排序

Redis的SORT命令可以對列表鍵、集合鍵或者有序集合鍵的值進行排序。

SORT<key>命令的實現

這個命令可以對一個包含數字值的鍵key進行排序。