time : 20181018;
學習一些Redis的高級應用--Redis 命令行redis
1. Redis 發佈訂閱(pub/sub)是一種消息通訊模式:發送者發送消息,訂閱者(sub)接受消息 2. Redis 能夠訂閱任意數量的頻道 3. 咱們建立了訂閱頻道 : redisChat subscribe redisChat ps : 不要關閉 4. 咱們進行消息的發佈 : 從新打開一個redis-cli PUBLISH redisChat "woami"
redis事務是一次能夠執行多個命令,而且帶有如下兩個保證 : 1. 批量操做在執行 EXEC 命令前是放到隊列緩存中的 2. 收到 EXEC 命令後,事務開始執行,事務中的任何命令執行失敗,其他命令還會執行 3. 在事務執行過程當中,其餘客戶端提交的請求不會插入到事務執行序列中 一個事務從開始執行須要經歷三個階段 : 1. 開始事務 2. 命令入列 3. 執行事務 實例 : 先以 MULTI 開始一個事務, 而後將多個命令入隊到事務中, 最後由 EXEC 命令觸發事務, 一併執行事務中的全部命令: redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days" QUEUED redis 127.0.0.1:6379> GET book-name QUEUED redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series" QUEUED redis 127.0.0.1:6379> SMEMBERS tag QUEUED redis 127.0.0.1:6379> EXEC 1) OK 2) "Mastering C++ in 21 days" 3) (integer) 3 4) 1) "Mastering Series" 2) "C++" 3) "Programming" 單個 Redis 命令的執行是原子性的,但 Redis 沒有在事務上增長任何維持原子性的機制,因此 Redis 事務的執行並非原子性的。 事務能夠理解爲一個打包的批量執行腳本,但批量指令並不是原子化的操做,中間某條指令的失敗不會致使前面已作指令的回滾,也不會形成後續的指令不作。
1. redis 數據備份 redis save 命令御用建立當前數據的備份 語法 : SAVE 實例 : SAVE : 該命令將在 redis 安裝目錄中建立dump.rdb文件 2. redis 數據恢復 若是須要恢復數據,只須要將備份文件(dump.rdb)移動到 redis 安裝目錄並重啓服務便可; 獲取 redis 目錄可使用 config 命令 config get dir : 獲取 redis 目錄 3. Bgsave : 建立 redis 備份文件,該命令在後臺執行
redis 性能測試是經過同時執行多個命令實現的 語法 : redis-benchmark [option] [option value] 實例 : 同時執行10000個請求 redis-benchmark -n 10000 -q redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q 主機爲127.0.0.1,端口號 6379,執行的命令爲 set,lpush,請求數爲 10000,經過-q 參數讓結果只顯示每秒執行的請求數
1. Redis 管道技術 redis 是一種基於客戶端-服務器模型以及請求/響應協議的TCP服務,這意味着一般狀況下一個請求會遵循如下步驟 : 1. 客戶端向服務器發送一個查詢氫氣,並監聽Socket返回,一般是以阻塞模式,等待服務器端響應 2. 服務端處理命令,並將結果返回給客戶端 redis 管道技術能夠在服務端未響應時,客戶端能夠繼續向服務端發送請求,不併最終一次性讀取全部服務端的響應 2. 管道技術的優點 : 管道技術最顯著的優點是提升了 redis 服務的性能