redis運維與管理
阿新 • • 發佈:2021-08-02
redis記憶體儲存,速度極快
豐富的附件功能
1.持久化功能:降儲存在記憶體的資料儲存到硬碟 2.釋出與訂閱:將訊息同時分發給多個客戶端 3.過期鍵功能:為鍵設定一個過期時間,讓它在指定的時間之後自動被刪除。 4.事務功能:原子地執行多個操作,並提供樂觀鎖功能,保證處理資料時的安全性。 5.指令碼功能:在伺服器端原子地執行多個操作,完成複雜的功能,並減少客戶端與伺服器之間的通訊往返次數。 6.複製:為指定的 Redis 伺服器建立一個或多個複製品,用於提升資料安全性,並分擔讀請求的負載。 7.Sentinel:監控 Redis 伺服器的狀態,並在伺服器發生故障時,進行自動故障轉移。 8.叢集:建立分散式資料庫,每個伺服器分別執行一部分寫操作和讀操作。
1.設定字串鍵值
*SET key value
例:
redis> set msg "hellow world" OK
redis> get msg
hellow world *SET key value [NX|XX] SET 命令還支援可選的 NX 選項和 XX 選項: • 如果給定了 NX 選項,那麼命令僅在鍵 key 不存在的情況下,才進行設定操作;如果鍵 key 已經存在,那麼 SET ... NX 命令不做動作(不會覆蓋舊值)。 • 如果給定了 XX 選項,那麼命令僅在鍵 key 已經存在的情況下,才進行設定操作;如果鍵 key 不存在,那麼 SET ... XX 命令不做動作(一定會覆蓋舊值)。 在給定 NX 選項和 XX 選項的情況下,SET 命令在設定成功時返回 OK ,設定失敗時返回 nil 。
例: redis> SET nx-str "this will fail" XX # 鍵不存在,指定 XX 選項導致設定失敗 (nil) redis> SET nx-str "this will success" NX # 鍵不存在,所以指定 NX 選項是可行的 OK redis> SET nx-str "this will fail" NX # 鍵已經存在,指定 NX 選項導致設定失敗 (nil) redis> SET nx-str "this will success again!" XX # 鍵已經存在,指定 XX 選項是可行的 OK
* MSET KEY VALUE
一次設定多個值
* MGET key
一次獲取多個值
*INCRBY key increment
將 key 所儲存的值加上增量 increment ,命令返回操作執行之後,鍵 key 的當前值。
*DECRBY key decrement
將 key 所儲存的值減去減量 decrement ,命令返回操作執行之後,鍵 key 的當前值。
例:
累計閱讀量
* 儲存二進位制數(暫時未弄明白)
例:
統計線上人數
2.雜湊
儲存多個域值對 1.一個雜湊由多個域值對(field-value pair)組成。 2.同一個雜湊裡面的每個域必 須是獨一無二、各不相同的,而域的值則沒有這一要求,不同域的值可以是重複的。 3.通過命令,使用者可以對雜湊執行設定域值對、獲取域的值、檢查域是否存在等操作,也可以 讓 Redis 返回雜湊包含的所有域、所有 值或者所有域值對。 * HSET key field value redis> HSET message "id" 10086 * HSETNX key field value 如果雜湊鍵 key 中,域 field 不存在(也即是,還沒有與之相關聯的值),那麼關聯給定的域值對 field 和value 。 redis> HSETNX message "content" "Good morning, jack!" (integer) 1 * HMSET key field value [field value ...] 在雜湊鍵 key 中關聯多個域值對,相當於同時執行多個 HSET 。 redis> HMSET message "id" 10086 "sender" "peter" "receiver" "jack" OK * HMGET key field [field ...] 返回雜湊鍵 key 中,一個或多個域的值,相當於同時執行多個 HGET 。 redis> HMGET message "id" "sender" "receiver" 1) "10086" 2) "peter" 3) "jack" * HKEYS key 返回雜湊鍵 key 包含的所有域。 * HVALS key 返回雜湊鍵 key 中,所有域的值。 * HGETALL key 返回雜湊鍵 key 包含的所有域值對。