1.什么是大key
Redis中存储了大量数据的key,通常出现在String,list,hash,set,zset
例子:在利用好友实现朋友圈功能时,某个用户添加了大量的好友,每个好友发送文章时,都会将文章推送给该用户,就会造成该key特别大
2.大Key存在的危害
- 由于Big key的values占用的内存很大,所以读取速度会很慢
- 会大量占用Redis内存,造成其他数据无法存储,可能会导致Redis卡住
- 会影响Redis集群,造成节点之间内存分布不均
- 影响Redis的备份和恢复,例如从RDB文件中,需要花费大量时间
- 搜索,迁移,删除困难
3.怎么识别big key
在控制台输入redis-cli-bigkeys可以识别大key
4.怎么处理大key
- 有选择的删除big key,删除那些访问频率较低的
- 设置合理的过期时间
- 将Big key进行拆分,或者使用小键替代大键
- 使用Cluster集群模式,将big key分散到不同的节点上,加快响应速度
- 部分迁移,存放在单独的Redis中