Redis 四 高階特性

2021-10-10 13:36:47 字數 1555 閱讀 9277

1、 pub/sub 發布訂閱(publish 與 subscribe)

redis 提供了基於發布/訂閱模式的訊息機制,訊息發布者和訂閱者不能直接通訊,客戶端發布訊息的時候指定傳送的頻道,然後訂閱了該頻道的使用者可以接收到該訊息。

具體指令如下:

1)publish channel message        發布訊息,將資訊傳送到指定的頻道

2)subscribe channel [……]        訂閱訊息,訂閱乙個或多個頻道的資訊

3)unsubscribe [channel [channel …]]    退訂給定的頻道    退訂訊息:punsubscribe

4)psubscribe pattern            訂閱乙個或多個符合給定模式的頻道

5)pubsub subcommand            檢視訂閱與發布系統狀態

發布:  publish c1 hello

publish c2 world

訂閱:    subscribe c1 c2

2、 redis 中的事務是一組命令的集合,是 redis 的最小執行單位。

3、 redis 事務的原理是先將屬於乙個事務的命令傳送給 redis,然後依次執行這些命令。在執行完當前事務內所有指令前,不會同時執行其他客戶端的請求。

4、 redis 事務不支援回滾,如果事務中有錯誤的操作,會繼續執行餘下的命令,無法回滾到處理前的狀態,需要開發者處理。

這一點和關係型資料庫不太一致。這樣處理的原因是:

1)只有語法錯誤,redis才會執行失敗,例如型別賦值錯誤, 這就是說從程式層面完全可以捕獲以及解決這些問題

2)支援回滾需要增加很多任務作,不支援的情況下,redis 可以保持簡單、速度快的特性    

5、 transactions 事務

1)multi        標記乙個事務塊的開始,即開啟事務

2)exec            執行所有事務塊內的命令

3)discard        取消事務,放棄執行事務塊內的所有命令

4)unwatch        取消 watch 命令對所有 key 的監視

5)watch key    監視 key,如果在事務執行之前 key 被其他命令所改動,那麼事務將被打斷

6、 redis 提供了批量操作命令,例如 mget、mset 等,能夠一定程度上節省這類時間,但大部分命令還是不支援批量操作,而pipeline 功能能夠改善這一類問題。

pipeline 將一組 redis 命令進行組裝,一次性傳輸給 redis,再將這些命令執行結果按照順序返回給客戶端。

7、 redis 的 pipeline 適用場景:有批量資料寫入 redis,並且允許一定比例的寫入失敗,失敗的資料可以後期補入

8、 redis 的批量命令與 pipeline 的不同

1)批量命令保證原子性的,pipeline 非原子性

2)批量命令是乙個命令對應多個 key,pipeline 支援多個命令

3)批量命令是 redis 服務端實現,而 pipeline 是需要服務端和客戶端共同實現

Redis之高階特性

expire key seconds 設定key的過期時間 ttl key 檢視key的過期時間 persist key 刪除key的過期時間 過期策略 定時刪除 主動,集中處理 會將每個設定了過期時間的 key 放入到乙個獨立的字典中,以後會定時遍歷這個字典來刪除到期的 key。過期策略 定時刪除...

Redis高階特性之geo

3.2新增的新特性 從網上蒐集幾個城市的經緯度來做測試。城市 經度緯度 英文北京 116.28 39.55 beijing 天津117.12 39.08 tianjin 石家莊114.29 38.02 shijiazhuang 唐山118.01 39.38 tangshan 保定115.29 38....

redis高階實用特性(1)

1.安全性 2.主從複製 3.事務處理 4.持久化機制 5.發布訂閱訊息 6.虛擬記憶體的使用 安全性 設定客戶端連線後進行任何其他指定前需要使用的密碼 警告 因為redis速度相當快,所以在一台比較好的伺服器下,乙個 外部使用者可在一秒鐘進行150k次的密碼嘗試,這就意味著你需要指定 非常非常強大...