Redis中存储hash对象的时候为什么有时候是ziplist编码,有时候是hashtable编码?

提问者:帅平 问题分类:面试刷题
Redis中存储hash对象的时候为什么有时候是ziplist编码,有时候是hashtable编码?
1 个回答
候你多时
候你多时
在哈希对象包含的元素比较少时, Redis 使用压缩列表作为列表对象的底层实现,因为压缩列表比双端链表更节约内存,并且在元素数量较少时,在内存中以连续块方式保存的压缩列表比起双端链表可以更快被载入到 CPU 缓存中;
随着列表对象包含的元素越来越多,使用压缩列表来保存元素性能就会变差,Redis 就会把这个列表对象在底层从压缩列表编码转成 hashtable 编码,hashtable 编码是一个更适合保存大量元素的双端链表。
发布于:6个月前 (11-10) IP属地:四川省
我来回答