富婆熟女一区二区三区,97久久精品无码一区二区三区,欧美日韩一区二区三区在线观看,国产区在线观看成人精品

Redis大key
日期:2025年05月20日     新聞分類: 技術中心      瀏覽:208次

一、 什么是Redis大key

key存儲的value值非常大,當value為哈希表、集合、有序集或鏈表時指存儲的元素過多(上萬)。

當value為字符串時一般指單個字符串超過1M。

也包括Key數(shù)量極多的情況,例如key數(shù)量達到千萬上億的規(guī)模

二、大key會有哪些問題

由于Redis主線程為單線程模型,大key也會帶來一些問題,如:

1、集群模式在slot分片均勻情況下,會出現(xiàn)數(shù)據(jù)和查詢傾斜情況,部分有大key的Redis節(jié)點占用內(nèi)存多,QPS高。

2、大key相關的刪除或者自動過期時,會出現(xiàn)qps突降或者突升的情況,極端情況下,會造成主從復制異常,Redis服務阻塞無法響應請求。大key的體積與刪除耗時可參考下表:

key類型 field數(shù)量耗時

Hash  100萬1000ms

List  100萬1000ms

Set  100萬1000ms

Sorted Set  100萬1000ms

del命令刪除集合類象時,時間復雜度為O(M),M為集合中元素個數(shù)

3、大key的操作,尤其是使用hgetall、lrange 0 -1、get、hmget 等操作時,網(wǎng)卡可能會成為瓶頸

三、大key發(fā)現(xiàn)、刪除

Redis4.0前

1、redis-rdb-tools工具。redis實例上執(zhí)行bgsave,然后對dump出來的rdb文件進行分析,找到其中的大KEY。

2、redis-cli --bigkeys命令。可以找到某個實例5種數(shù)據(jù)類型(String、hash、list、set、zset)的最大key。

--bigkeys給出了每種數(shù)據(jù)結(jié)構(gòu)的top 1 bigkey,同時給出了每種數(shù)據(jù)類型的鍵值個數(shù)以及平均大小

Redis 4.0后大key發(fā)現(xiàn)和刪除

memory usage命令和lazyfree機制

memory usage: 抽樣統(tǒng)計key大小

[root@*** ~]# > MEMORY USAGE key值

lazyfree機制:在刪除的時候只進行邏輯刪除,把key釋放操作放在bio(Background I/O)單獨的子線程處理中,減少刪除大key對redis主線程的阻塞

當刪除key滿足閾值條件時,會將key放入BIO_LAZY_FREE后臺線程任務隊列

lazyfree有兩種方式

1.主動刪除

使用UN命令,集合個數(shù)大于64個后采用后臺線程刪除

2.被動刪除

需要做配置,默認是關閉的

lazyfree-lazy-eviction 達到最大內(nèi)存淘汰時

lazyfree-lazy-expire 過期鍵刪除策略

lazyfree-lazy-server-del 針對有些指令在處理已存在的鍵時,會帶有一個隱式的DEL鍵的操作。如rename命令,當目標鍵已存在,redis會先刪除目標鍵

slave-lazy-flush 針對slave進行全量數(shù)據(jù)同步,slave在加載master的RDB文件前,會運行flushall來清理自己的數(shù)據(jù)場景

四、大key處理方式

哈希、集合、有序集合、鏈表中元素數(shù)量過多

拆分多個小集合,比如使用key計算出一個hash值,然后存到 key+hash值對應的value中

存儲的key過多

減少key個數(shù)可以減少對內(nèi)存的消耗,可以參考hash結(jié)構(gòu)存儲,將多個key存儲在一個hash結(jié)構(gòu)中。

字符串類型單key的value過大

將value拆分,降低單次操作的對服務端帶來壓力

Redis其他

redis可以存多少key

redis最多可以處理 2^32個可以,每個實例可以處理2.5億

每個哈希、列表、集合最多可容納2^32

Redis內(nèi)存占用

●一個空實例將使用約3MB的內(nèi)存。

●1百萬個小鍵->字符串值對使用?85MB的內(nèi)存。

1百萬個鍵->哈希值,代表具有5個字段的對象,使

版權(quán)所有: 山西科達自控股份有限公司 備案號:晉ICP備09004627號-2   

郵箱

[email protected]

電話

400-0351-150

微信

專屬
客服

留言

右側(cè)導航

主站蜘蛛池模板: 武威市| 卢湾区| 府谷县| 故城县| 灵石县| 峨边| 独山县| 韶关市| 怀宁县| 顺平县| 临潭县| 宜章县| 射阳县| 华阴市| 崇阳县| 固阳县| 榆中县| 安丘市| 五大连池市| 郑州市| 高雄县| 冷水江市| 霍州市| 上林县| 枣强县| 安仁县| 和田市| 富阳市| 德庆县| 曲阳县| 江西省| 柳州市| 富平县| 大同市| 和龙市| 仁化县| 达州市| 桦甸市| 青州市| 沅江市| 石阡县|