亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis4.0支持的新功能說明

發布時間:2020-05-24 09:17:43 來源:網絡 閱讀:494 作者:HW云中間件 欄目:云計算

本文以華為云DCS for Redis版本為例,介紹Redis4.0的新功能。文章轉載自華為云幫助中心。

與Redis3.x版本相比,DCS的Redis4.x以上版本,除了開源Redis增加的特性之外,還有如下大特性增強。

l 創建耗時縮短

實例由虛機方式改成了物理機容器化部署,創建實例只需要8~10秒時間完成。

l 性能提升

高性能版Redis4.x,操作系統使用華為自研的輕量級LibOS,單節點QPS從10w提升到30w

l 節省成本

高性能版Redis4.x,實例規格以1G為步長,用多少G買多少G,靈活定制,不再受限2的n次方要求。

相比于之前的版本,華為云Redis4.x在性能方面有了不小的提升,大大提高了使用者的體驗,如果你想了解更加詳細的具體實操內容,點這個鏈接

https://www.huaweicloud.com/product/dcs.html

給你更多驚喜。

接下來給大家介紹,開源Redis4.0版本新功能的具體特性。

Redis4.x版本更新的特性,主要涉及三個方面:

新命令的增加,如MEMORY、SWAPDB。
Lazyfree機制,延遲刪除大key,降低刪除操作對系統資源的占用影響。
內存性能優化,即主動碎片整理。
MEMORY命令

在Redis3.x及之前,只能通過info memory命令了解有限的幾個內存統計信息。Redis4.0引入新的命令memory,讓您能夠更深入了解Redis的內存使用情況。

127.0.0.1:6379[8]> memory help
1) MEMORY <subcommand> arg arg ... arg. Subcommands are:
2) DOCTOR - Return memory problems reports.
3) MALLOC-STATS -- Return internal statistics report from the memory allocator.
4) PURGE -- Attempt to purge dirty pages for reclamation by the allocator.
5) STATS -- Return information about the memory usage of the server.
6) USAGE <key> [SAMPLES <count>] -- Return memory in bytes used by <key> and its value. Nested values are sampled up to <count

times (default: 5).
127.0.0.1:6379[8]>
  

usage

輸入memory usage [key],如果當前key存在,則返回key的value實際使用內存估算值;如果key不存在,則返回nil。

127.0.0.1:6379[8]> set dcs "DCS is an online, distributed, in-memory cache service compatible with Redis, Memcached, and i
n-memory data grid (IMDG)."
OK
127.0.0.1:6379[8]> memory usage dcs
(integer) 171
127.0.0.1:6379[8]>
usage統計value內存占用,以及key自身的內存占用,不包含key的Expire內存占用。

127.0.0.1:6379[8]> set dcs.huaweiclou "Distributed Cache Service"
OK
127.0.0.1:6379[8]> memory usage dcs.huaweiclou
(integer) 85
127.0.0.1:6379[8]> set dcs.huaweicloud "Distributed Cache Service"
OK
127.0.0.1:6379[8]> memory usage dcs.huaweicloud
(integer) 86 //key名稱長度變化后,內存占用也有變化
127.0.0.1:6379[8]> expire dcs.huaweicloud 100000
(integer) 1
127.0.0.1:6379[8]> memory usage dcs.huaweicloud
(integer) 86 //加了過期時間后,內存占用沒有改變
127.0.0.1:6379[8]>
  

對hash、list、set、sorted set等數據類型,usage命令會抽樣統計,提供內存占用的估算值。

使用方式:memory usage keyset samples 1000

其中keyset表示一個集合數據類型的key,1000表示抽樣個數。

stats

返回當前實例內存使用細節。

使用方法:memory stats

127.0.0.1:6379[8]> memory stats
1) "peak.allocated"
2) (integer) 2412408
3) "total.allocated"
4) (integer) 2084720
5) "startup.allocated"
6) (integer) 824928
7) "replication.backlog"
... ...

以下給出部分數據返回項的具體含義

表1-1 memory stats

數據返回項

說明

peak.allocated

Redis實例運行過程中,allocator分配的內存峰值。同info memory的used_memory_peak

total.allocated

allocator當前分配的內存字節數。同info memory的used_memory

startup.allocated

Redis啟動占用的內存字節數

replication.backlog

Redis復制積壓緩沖區(replication backlog)內存使用字節數,通過repl-backlog-size參數設置,默認1M

clients.slaves

在master側,所有slave clients消耗的內存字節數

clients.normal

Redis所有常規客戶端消耗內存節字數

overhead.total

Redis額外的總開銷內存字節數; 即分配器分配的總內存total.allocated,減去數據實際存儲使用內存。

keys.count

Redis實例中key的數量

keys.bytes-per-key

每個key平均占用字節數。注意,overhead也會均攤到每個key上,因此不能以此值來表示業務實際的key平均長度。

dataset.bytes

表示Redis數據占用的內存容量。即分配的內存總量,減去總的額外開銷內存量。

dataset.percentage

表示Redis數據占用內存占總內存分配的百分比

peak.percentage

當前內存使用量與峰值時的占比

fragmentation

表示Redis的內存碎片率

doctor

使用方法: memory doctor

used_memory(total.allocated)小于5M,doctor認為內存使用量過小,不做進一步診斷。當滿足以下某一點,Redis會給出診斷結果和建議:

peak分配內存大于當前total_allocated的1.5倍,即peak.allocated/total.allocated > 1.5,說明內存碎片率高,RSS遠大于used_memory
High fragmentation/fragmentation大于1.4,說明內存碎片率高
每個Normal Client平均使用內存大于200KB,說明pipeline可能使用不當,或Pub/Sub客戶端處理消息不及時
每個Slave Client平均使用內存大于10MB,說明master的寫入流量過高
purge

使用方法: memory purge

用途:通過調用jemalloc內部命令,進行內存釋放。釋放對象包括Redis進程占用但未有效使用的內存,即常說的內存碎片。

memory purge只適用于使用jemalloc作為allocator的Redis實例。

Lazy free機制

解決的痛點/問題

Redis是單線程程序,當運行一個耗時較大的請求時,會導致所有請求排隊等待,在請求處理完成前,Redis不能響應其他請求,因此容易引發性能問題。而Redis刪除大的集合鍵時,就屬于一種比較耗時的請求。

原理

Redis4.x提供的一種惰性刪除或者說延遲釋放機制,主要用于解決刪除大key對Redis進程的阻塞,從而避免帶來性能與可用性問題。

刪除key時,Redis異步延時釋放key的內存,把key釋放操作放在bio(Background I/O)單獨的子線程處理中。

使用方法

主動刪除
? unlink

unlink與del命令目的一樣,刪除某個key。unlink在刪除集合類鍵時,如果集合鍵的元素個數大于64個,會把內存釋放操作,給單獨的bio(Background I/O)線程來執行。因此unlink刪除操作能在非常短的時間內完成包含上百萬個元素的大key刪除。

? flushall/flushdb

通過對flushall/flushdb添加ASYNC異步清理選項,Redis在清理整個實例或單個DB時,操作都是異步的。

過期key刪除、大key驅逐刪除
被動刪除有四種場景,每種場景對應一個配置參數,默認都是關閉:

lazyfree-lazy-eviction no //針對redis內存使用達到maxmeory,并設置有淘汰策略時,是否采用lazy free機制
lazyfree-lazy-expire no //針對設置有TTL的鍵,達到過期后,被redis清理刪除時是否采用lazy free機制
lazyfree-lazy-server-del no //針對有些指令在處理已存在的鍵時,會帶有一個隱式的DEL鍵的操作
slave-lazy-flush no //針對slave進行全量數據同步,slave在加載master的RDB文件前,會運行flushall來清理自己的數據場景

以上配置如需使用,請提工單咨詢技術服務人員。

其他新增命令

swapdb

用途:交換同一Redis實例內2個db的數據。

用法:swapdb dbindex1 dbindex2

zlexcount

用途:在有序集合中,返回符合條件的元素個數。

用法:zlexcount key min max

內存使用和性能改進

使用更少的內存來存儲相同數量的數據
可以對使用的內存進行碎片整理,并逐漸回收

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德安县| 重庆市| 桑植县| 石家庄市| 肇州县| 南涧| 长葛市| 武乡县| 四川省| 临泉县| 类乌齐县| 临武县| 龙陵县| 锡林浩特市| 开封市| 六盘水市| 黄浦区| 祁连县| 中超| 广宗县| 兴宁市| 巴林左旗| 芷江| 攀枝花市| 石河子市| 霍林郭勒市| 宁化县| 邛崃市| 鹤山市| 安达市| 类乌齐县| 陆良县| 那坡县| 丰顺县| 车险| 东乡县| 阿勒泰市| 城口县| 新民市| 阆中市| 甘德县|