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進行排序。