Redis的对象和数据结构

Redis数据库的键值对(key-value)都是由对象(object)组成。

对象总共有5种:

  1. 字符串对象(string)
  2. 列表对象(list):有序链表,value能重复,可通过下标取元素,可在头/尾进行插入或删除。
  3. 哈希对象(hash):HashMap
  4. 集合对象(set):不重复、无序、不能通过下标取元素。
  5. 有序集合对象(zset)

而对象则是由6种主要数据结构创建:

  1. 简单动态字符串(SDS):相比C字符串,SDS做了优化:直接获取字符串长度、避免缓冲区溢出、空间预分配。
  2. 链表:双端无环链表,可以快速的在表头和表尾插入和删除元素,但查找复杂度高,是列表的底层实现之一。未提供查询元素是否存在于链表中的接口。
  3. 字典:又称为:符号表、关联数组、映射(map),字典使用哈希表作为底层实现,采用murmurhash高效hash计算,链表头插法解决hash冲突,渐进式rehash提升性能。
  4. 跳跃表:是有序数据结构,效率和平衡树相当,实现简单,按层建造,底层是有序链表,上层是高度不等的快速查询通道,层高1~32。
  5. 整数集合:底层为有序不重复的数组。当键数量小于512并且键值为整数时集合使用整数集合作为底层实现,节约内存。
  6. 压缩列表:当列表只包含少量的小整数或短字符串就是用压缩列表作为底层实现,节约内存。

详细解析:Redis 的几种数据结构&五种数据类型对象_武汉红喜-CSDN博客_redis嵌套数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值