Redis的大key问题
介绍
Redis的大Key问题指的是,redis中存储了大量数据的key,并不是说key大就是大key,value也算。
大Key的范围
大Key这个没有一个准确的定义,都是肯定经验去定的。
比如String类型的 不大于5mb
Set和List的对象不大于10000
hash不大于1000
大Key的影响
1.首先就是性能的影响,因为占用内存比较大,所以读取的时候影响性能
2.redis集群的情况下可能会导致分布不均
3.操作大key会导致阻塞redis
如何处理大key
首先就是对大key按照一定的规则进行拆分
或者把大key的数据存放到redis集群中
设置过期时间,避免长期积累
识别 大key
通过redis的命令 redis cli-
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).Biggest string found so far 'mykey' with 160012 bytes
Biggest list found so far 'mylist' with 2304 items
Biggest set found so far 'myset' with 1230 members
Biggest zset found so far 'myzset' with 3220 members
Biggest hash found so far 'myhash' with 412 fields