Redis集合对象
- 底层数据存储结构实现方式
答:集合对象的编码可以是intset或者hashtable。Intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在整数集合里面。Hashtable编码的集合对象使用字典作为底层实现。字典是key-value类型的结构,字典的每个键都是一个字符串对象,通过使用字典的key保存集合的值,而字典的value的值都是NULL。
- 存储结构的选择
答:既然Redis的集合对象存储结构有intset和hashtable两种,那么Redis是如何决定使用哪一种结构存储数据呢。这个非常简单,只要存储的数据都是整数值以及集合对象保存的元素个数不超过512个就会使用intset作为底层数据结构否则使用hashtable。