Redis的5种数据类型

Redis单个数据对象如下:

redisObj {

  type // 类型

  encoding  // 编码

  ptr // 内容指针

}

Redis的5种数据类型:

一、字符串String类型

  Int类型编码

  embstr类型编码:不可变字符串, 只分配一次内存(redisObject与sdshdr连续内存)

  raw类型编码:可变字符串, 分配两次内存(redisObject与sdshdr)

二、列表List类型

  ziplist类型编码:连续数组存储,节省内存

  linkedlist类型编码:双向链表存储,针对大量数据操作灵活

三、哈希Hash类型

  ziplist类型编码:连续数组存储,节省内存

  hashtable类型编码:针对大量数据可快速查找元素

四、集合Set类型

  intset类型编码:连续数组存储,节省内存

  hashtable类型编码:针对大量数据,查找单个元素可快速查找元素

五、有序集合zset类型

  ziplist类型编码:连续数组存储,节省内存

  skiplist类型编码:底层采用skiplist与dict(hashtable)类型两个变量存储。skiplist有序存储,范围range查询速度快,dict单个查询速度快(O(1))

原文地址:https://www.cnblogs.com/gz-fenglang/p/13494723.html