Redis是一種支持Key-Value等多種數據結構的存儲系統,其數據特性是「ALL IN MEMORY」,所以優化內存十分重要。在對Redis進行內存優化時,先要掌握Redis內存存儲的特性好比字符串,壓縮編碼,整數集合等,再根據數據規模和所用命令需求去調整,從而達到空間和效率的最佳平衡。html
但隨着數據大幅增加,開發人員須要面對從新優化內存所帶來開發和數據遷移的雙重成本也愈來愈高。Redis全部的數據都在內存中,那麼,咱們是否能夠經過簡便高效的方式去實現Redis內存優化呢?redis
答案固然是能夠的。分佈式緩存服務DCS是兼容Redis的內存數據庫服務,基於雙機熱備的高可用架構,提供單機、主從、集羣等豐富類型的緩存類型,知足用戶高讀寫性能及快速數據訪問的業務訴求。如何使用分佈式緩存服務DCS實現Redis的內存優化呢?讓咱們一塊兒來看看。數據庫
操做步驟:緩存
一、登陸管理控制檯。在管理控制檯左上角單擊圖標,選擇區域和項目。服務器
二、單擊頁面上方的「服務列表」,選擇「數據庫 > 分佈式緩存服務」,進入分佈式緩服務信息頁面。數據結構
三、單擊左側菜單欄的「緩存管理」。架構
四、在「緩存管理」頁面,單擊緩存實例的名稱。dom
五、單擊「配置參數」頁籤進入配置界面。分佈式
六、單擊「修改」。性能
七、根據須要修改相關參數。
各參數的詳細介紹見表1,通常狀況下,按照系統默認值設置參數便可。
爲了確保分佈式緩存服務DCS發揮出最優性能,用戶能夠根據本身的業務狀況對Redis實例的運行參數進行調整。如下爲Redis實例配置參數說明:
參數名 |
參數解釋 |
取值範圍 |
默認值 |
timeout |
客戶端與服務端鏈接空閒超時斷開時間,參數設爲0表示鏈接永不斷開。 |
0~7200,單位:秒。 |
0 |
maxmemory-policy |
內存使用達到上限時對緩存數據管理策略。 |
volatile-lru allkeys-lru volatile-random allkeys-random volatile-ttl noeviction |
noeviction |
hash-max-ziplist-entries |
當hash表中記錄數少於參數值,使用ziplist編碼格式,節約內存。 |
1~10000 |
512 |
hash-max-ziplist-value |
當hash表中各字段長度的最大值小於參數值時,使用ziplist編碼格式,節約內存。 |
1~10000 |
64 |
list-max-ziplist-entries |
當列表中記錄數少於參數值,使用ziplist編碼格式,節約內存。 |
1~10000 |
512 |
list-max-ziplist-value |
當列表中各字段長度的最大值小於參數值時,使用ziplist編碼格式,節約內存。 |
1~10000 |
64 |
set-max-intset-entries |
當一個集合僅包含字符串且整形元素數量少於參數值時,使用intset編碼格式,節約內存。 |
1~10000 |
512 |
zset-max-ziplist-entries |
當有序集合中記錄數少於參數值,使用ziplist編碼格式,節約內存。 |
1~10000 |
128 |
zset-max-ziplist-value |
當有序集合中各字段長度的最大值小於參數值時,使用ziplist編碼格式,節約內存。 |
1~10000 |
64 |
latency-monitor-threshold |
延時監控的採樣時間閾值(最小值)。 當閾值設置爲0時,不作監控,也不採樣;當閾值設置爲大於0時,將監控並記錄執行耗時大於閾值的操做。 用戶能夠經過LATENCY等命令獲取統計數據和配置、執行採樣監控。詳情參考Redis官網說明:https://redis.io/topics/latency-monitor。 |
0~86400000,單位:毫秒。 |
0 |
reserved-memory |
預留內存,主備實例纔有此配置。 預留內存將被分配給實例所在虛擬機,保證DCS實例後臺進程在作持久化和主從同步等任務時擁有足夠的內存。 預留內存大小能夠調高或者調低,但不能超過實例當前剩餘的可用內存,以及最大可用內存的50%。其中實例最大可用內存可參考《分佈式緩存服務產品介紹》。 |
實例最大可用內存數的0-50%,同時不能超過實例當前剩餘的可用內存,具體以界面提示爲準,單位:MB。 |
0 |
notify-keyspace-events |
鍵空間通知,配置該參數後客戶端能夠經過Redis的訂閱與發佈功能,來接收那些以某種方式改動了Redis數據集的事件。 |
配置爲空字符串""時,不支持該功能。 可配置爲如下字符的任意組合,指定了服務器該發送哪些類型的通知: K:鍵空間通知,全部通知以__keyspace@__爲前綴。 E:鍵事件通知,全部通知以__keyevent@__爲前綴。 g:DEL、EXPIRE、RENAME等類型無關的通用命令的通知。 $:字符串命令的通知。 l:列表命令的通知。 s:集合命令的通知。 h:哈希命令的通知。 z:有序集合命令的通知。 x:過時事件:每當有過時鍵被刪除時發送。 e:驅逐(evict)事件:每當有鍵由於maxmemory政策而被刪除時發送。 |
"" |
以上就是如何用分佈式緩存服務實現Redis內存優化的大體介紹,想要了解更多,歡迎點開分佈式緩存服務DCS查看。