Redis的key和value大小限制 | value需要压缩吗?

Redis的key和value大小限制

官方文档: https://redis.io/docs/data-types/tutorial/

关键字: The maximum allowed key size is

1.Redis的key可以存储的最大值
虽然Key的大小上限为512M,但是一般建议key的大小不要超过1KB,这样既可以节约存储空间,又有利于Redis进行检索
注:1KB=1024B 1MB=1024KB 1GB =1024MB

2.Redis的value可以存储的最大值
value的最大值也是512M。对于String类型的value值上限为512M,而集合、链表、哈希等key类型,单个元素的value上限也为512M

大 Value

由于 Redis 是单线程运行的,如果一次操作的 value 很大会对整个 redis 的响应时间造成负面影响,因为 Redis 是 Key - Value 结构数据库,大 value 就是单个 value 占用内存较大。

Redis使用过程中经常会有各种大Value 的情况:

  • 单个简单的key存储的value很大
  • hash, set,zset,list 中存储过多的元素(以万为单位)
    由于redis是单线程运行的,如果一次操作的value很大会对整个redis的响应时间造成负面影响,所以,业务上能拆则拆。

大 Value 会造成哪些故障:

  • 数据倾斜问题:大 Value 会导致集群不同节点数据分布不均匀,造成数据倾斜问题,大量读写比例非常高的请求都会落到同一个 redis server 上,该 redis 的负载就会严重升高,容易打挂。
  • QPS 倾斜:分片上的 QPS 不均。
  • 大 Value 会导致 Redis 服务器缓冲区不足,造成 get 超时。
  • 由于值太大而过大,会对性能产生较大影响。读取值时,其他请求处于等待状态。如果该值占用太多内存,则读取速度会很慢。
  • 大 Value,有些 key 访问 QPS 虽然不高,但是由于 value 很大,造成网卡负载较大,网卡流量被打满,单台机器可能出现千兆 / 秒,IO 故障。

超级大的一个Value存到redis中去, 这样其实不好, 我们可以把value进行压缩。

参考

分布式 - Redis热点key大Value解决方案
参考URL: https://blog.csdn.net/qq_34272760/article/details/120754635

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐