Skip to content

Latest commit

 

History

History
23 lines (21 loc) · 1.09 KB

object.md

File metadata and controls

23 lines (21 loc) · 1.09 KB
  • 对象类型:字符串对象、列表对象、哈希对象、集合对象和有序集合对象
  • 使用对象的好处:可以针对不同的使用场景,为对象设置多种不同的数据结构实现,从而优化对象在不同场景下的使用效率
  • 内存回收:基于引用计数
  • 对象共享:包含对整数值的字符串对象进行共享(基于引用计数)

结构体:

redisObject {
    type //类型
    encoding // 编码
    ptr //指向底层数据结构
    refcount // 引用计数,为0时释放内存
    lru // 记录了最后一次对象被命令程序访问的时间,用于当内存达到上限时释放空转时长(当前时间-lru)较高的对象
}
  • redis对象编码特点:和数据长度密切相关,需要时查阅即可 各种对象类型:
  1. 字符串对象:编码可以是int、raw或者embstr
  2. 列表对象:编码可以时ziplist或者linkedlist
  3. 哈希对象:编码可以是ziplist或者hashtable
  4. 集合对象:编码可以是intset或者hashtable
  5. 有序集合对象:编码可以是ziplist或者skiplist