redis支持的数据类型:
1. String 实现为sds(simple dynamic string)对c语言的string进行了封装。对string空间进行了预分配,杜绝了缓冲区溢出的问题。此外还有各种机制来增加访问的分配内存的速度。
2. List 实现方式为一个无环的双向链表。具体对象是ziplist类型。
3. Hash 实现为哈希表。与C++一样使用链地址表(即对hash结果相同的项放到一个地方用链表存储)解决哈希冲突。值得注意的是在rehash的时候redis并不会立刻全部迁移整个表。而是生成两个表。在使用的时候逐渐迁移,新的值全部插入到新的hash表去。
4. Set 实现为intset或者hash table。当内容较少(少于512)且均为整数的时候将使用intset作为底层数据结构。intset中存贮的数据是有序的。而当使用hash table时,存贮的数据则是无序的。