这样,我们就创建了两个对象,且两个都是字符串对象,因为键值对的 key 和 value 都是字符串。
如果我们创建了一个列表数据,那么 key 是字符串对象,而值 value 是列表对象。
在 Redis 中,每个对象都由一个 redisObject 结构来表示:
typedef struct redisObject{
//类型
unsigned type:4;
//编码
unsigned encoding:4;
//指向底层实现数据结构的指针
void *ptr
//...
} robj;
复制代码
type
在上面的结构中,type 指的是这个对象的类型,比如我们创建了一个列表数据,那么这个数据的 key 就是一个字符串对象,由这个结构里的 type 来指定,这个数据的 value 就是一个列表对象,也是由 type 来进行指定区分。
但是,当我们想要知道一条数据的数据类型是字符串、列表、哈希、集合、有序集合的哪一种时,我们常常是需要知道的这条数据的 value 的类型,一般也是指的 value 的类型,因为数据的 key 的类型总是字符串对象。
一条数据的值对象类型的获取我们可以用 TYPE 命令来操作: