参考:《Redis设计与实现》黄健宏著,网上对Redis的详解等
1、简介
Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject;这个对象系统包含了五大数据对象,字符串对象(string)、列表对象(list)、哈希对象(hash)、集合(set)对象和有序集合对象(zset);而这五大对象的底层数据编码可以用命令OBJECT ENCODING来进行查看。
redisObject结构
1 typedef struct redisObject {
2 // 类型
3 unsigned type:4;
4 // 编码
5 unsigned encoding:4;
6 // 指向底层实现数据结构的指针
7 void *ptr;
8 // ...
9 } robj;
redis是以键值对存储数据的,所以对象又分为键对象和值对象,即存储一个key-value键值对会创建两个对象,键对象和值对象。
键对象总是一个字符串对象,而值对象可以是五大对象中的任意一种。
- type属性存储的是对象的类型,也就是我们说的 string、list、hash、set、zset中的一种,可以使用命令 TYPE key 来查看。
- encoding属性记录了队形所使用的编码,即这个对象底层使用哪种数据结构实现。
版权声明:本文为JineD原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。