1. 程式人生 > 其它 >redis運維與管理

redis運維與管理

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 包含的所有域值對。