数据结构

键的类型只能是字符串,而值支持存储为以下的5种类型

高级数据结构

string

就是字符串 底层是SDS

list

redis底层使用双向链表实现list,支持两端的push和pop操作 底层就是双向链表

hash

redis使用散列表来实现hash,一个hash结构里面存在很多的key和value

数量少的时候是压缩列表,数量多的时候使用字典

set

可以计算交集,并集,差集等

数据少的时候使用整数集合,多的时候用hash table

zest

有序的集合,可以计算一个键的排名,根据值的范围获取元素等

底层数据少的时候用压缩列表,多的时候用跳表和字典同时存储

通过使用字典结构, 并将 member 作为键, score 作为值, 有序集可以在 O(1)O(1) 复杂度内:

另一方面, 通过使用跳跃表, 可以让有序集支持以下两种操作: