发布时间:2025-12-11 22:42:42 点击量:
HASH GAME - Online Skill Game GET 300

Redis hash也可以作为字典实现,在存储优化上Hash有优化算法,称为ziplist(Redis 2.6之前称为zipmap)。该压缩算法能够优化节省内存,ziplist也用于优化排序set和list集合的存储。当一个hash压偏到这样一个压缩过的集合中时,类似这样排列[key1, value1, key2, value2, ...],带有一些key的Hash能够被打包进入线性数组结构,同时保证get和set时的O(1) 性能。这种方式很显然不会随着hash字段增加时能够保持这样的性能,当hash增长时,它会被转为标准的字典结构来维持O(1)性能,而空间节省特性就会失效,Redis配置参数会控制这个转换:
这个方式虽然很好,但是当有大量对象时,就需要耗费很多内存,使用内存优化的hash则可以做得更好,首先我们得给 list-max-ziplist-entries 和 list-max-ziplist-value选择正确的值,list-max-ziplist-value值是需要存储对象的哈希字符串的最大长度,list-max-ziplist-entries得设置足够低,取决于我们放入条目的数量,比如,对于1亿个对象我们选择使用100k个hash,最大条目数量将是100m/100k=1000。