键的类型只能是字符串,而值支持存储为以下的5种类型
就是字符串 底层是SDS
redis底层使用双向链表实现list,支持两端的push和pop操作 底层就是双向链表
redis使用散列表来实现hash,一个hash结构里面存在很多的key和value
数量少的时候是压缩列表,数量多的时候使用字典
可以计算交集,并集,差集等
数据少的时候使用整数集合,多的时候用hash table
有序的集合,可以计算一个键的排名,根据值的范围获取元素等
底层数据少的时候用压缩列表,多的时候用跳表和字典同时存储
通过使用字典结构, 并将 member
作为键, score
作为值, 有序集可以在 O(1)O(1) 复杂度内:
member
是否存在于有序集(被很多底层函数使用);member
对应的 score
值(实现 ZSCORE 命令)。另一方面, 通过使用跳跃表, 可以让有序集支持以下两种操作: