数据类型-Hash
参考数据类型与底层数据结构,Hash类型存在压缩列表和字典两种数据结构。
当Hash中节点比较少的情况下,底层才用压缩列表ziplist进行存储数据,随着数据的增加,底层的ziplist就可能会转成字典结构,具体配置如下:filed元素个数小于 hash-max-ziplist-entries(默认512),同时任意一个 value 的占用字节大小都小于hash-max-ziplist-value(默认64) 。 hash-max-ziplist-entries 512 hash-max-ziplist-value 64
Hash的field越多,当使用HgetAll获取全量数据时,性能越差,该命令的性能与field字段的数量成正比。
1、在filed数量小于阈值时,hgetall是hmget的性能的15倍以上
2、在filed数量大于阈值时,hmget是hgetall的性能的3倍以上
3、字典结构hmget是ziplist结构hmget的性能的30倍以上
4、存储量,字典结构是ziplist的5倍以上
生产环境配置
hash-max-ziplist-entries=512
hash-max-ziplist-value=64