redis學習-第二節-部分高級

redis 學習二

time : 20181018;
學習一些Redis的高級應用--Redis 命令行redis

Redis 發佈訂閱

1. Redis 發佈訂閱(pub/sub)是一種消息通訊模式:發送者發送消息,訂閱者(sub)接受消息
2. Redis 能夠訂閱任意數量的頻道
3. 咱們建立了訂閱頻道 : redisChat
    subscribe redisChat ps : 不要關閉
4. 咱們進行消息的發佈 : 從新打開一個redis-cli
    PUBLISH redisChat "woami"

Redis 事務

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 事務的執行並非原子性的。

事務能夠理解爲一個打包的批量執行腳本,但批量指令並不是原子化的操做,中間某條指令的失敗不會致使前面已作指令的回滾,也不會形成後續的指令不作。

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 性能測試是經過同時執行多個命令實現的
語法 : 
    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 參數讓結果只顯示每秒執行的請求數

Redis 管道技術

1. Redis 管道技術
    redis 是一種基於客戶端-服務器模型以及請求/響應協議的TCP服務,這意味着一般狀況下一個請求會遵循如下步驟 : 
        1. 客戶端向服務器發送一個查詢氫氣,並監聽Socket返回,一般是以阻塞模式,等待服務器端響應
        2. 服務端處理命令,並將結果返回給客戶端
    redis 管道技術能夠在服務端未響應時,客戶端能夠繼續向服務端發送請求,不併最終一次性讀取全部服務端的響應
2. 管道技術的優點 : 
    管道技術最顯著的優點是提升了 redis 服務的性能
相關文章
相關標籤/搜索