阿里雲redis4.0引擎是以社群4.0為基礎,合入大量阿里雲開發的特性以及bugfix後全新推出的售賣版本。除了擁有redis-2.8引擎所具備的所有優勢之外,還帶來了很多新功能。
redis-4.0帶來的lazyfree機制可以避免del,flushdb/flushall,rename等命令引起的redis-server阻塞,提高服務穩定性。
unlink
在redis-4.0之前,redis執行del命令會在釋放掉key的所有記憶體以後才會返回ok,這在key比較大的時候(比如說乙個hash裡頭有1000w條資料),其他連線可能要等待很久。為了相容已有的del語義,redis-4.0引入unlink命令,效果以及用法和del完全一樣,但記憶體釋放動作放到後台執行緒中執行。
unlink key [key ...]
flushdb/flushall
flushdb/flushall在redis-4.0中新引入了選項,可以指定是否使用lazyfree的方式來清空整個記憶體。
flushall [async]
flushdb [async]
rename
執行 rename oldkey newkey 時,如果newkey已經存在,redis會先刪除,這也會引發上面提到的刪除大key問題,如果想讓redis在這種場景下也使用lazyfree的方式來刪除,可以在控制台上開啟如下配置:我有幾張阿里雲幸運券分享給你,用券購買或者公升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。
lazyfree-lazy-server-del yes/no
其他場景
某些使用者對資料設定過期時間,依賴redis的淘汰機制去刪除已經過期的資料,這同樣也存在上面提到的問題,淘汰某個大key會導致程序cpu出現抖動,redis-4.0提供了兩個配置,可以讓redis在淘汰或者逐出資料時也使用lazyfree的方式。
lazyfree-lazy-eviction yes/no
lazyfree-lazy-expire yes/no
redis-4.0新增了 allkey-lfu 和 volatile-lfu 兩種資料逐出策略,同時還可以通過object命令來獲取某個key的訪問頻度。
object
freq
user_key
基於lfu機制,使用者可以使用 scan + object freq 來發現熱點key,當然redis也一起發布了更好用的工具——redis-cli,使用例項如下所示。 centos7 簡單安裝 redis4 0
wget解壓,安裝 tar zxvf redis 4.0.9.tar.gz 解壓 cd redis 4.0.9 進入解壓目錄 make 編譯 cd src 進入src make install 編譯安裝 mkdir p server redis4 bin 建立redis目錄 mkdir p serv...
Redis 4 0鮮為人知的功能將加速您的應用程式
redis 4.0給redis生態帶來了乙個驚人的功能 modules 模組 modules是redis的一大轉變,它是redis內部自定義資料型別和全速計算的開放環境。但是,儘管對該版本的大多數關注都集中在modules上,但新版本還引入了乙個非常重要的命令,它就是遊戲規則的改變者 unlink。...
Redis 4 0鮮為人知的功能將加速您的應用程式
redis 4.0給redis生態帶來了乙個驚人的功能 modules 模組 modules是redis的一大轉變,它是redis內部自定義資料型別和全速計算的開放環境。但是,儘管對該版本的大多數關注都集中在modules上,但新版本還引入了乙個非常重要的命令,它就是遊戲規則的改變者 unlink。...