美文网首页
Redis中SDS与RedisObject

Redis中SDS与RedisObject

作者: Vic_is_new_Here | 来源:发表于2019-06-08 14:57 被阅读0次

    上一篇Redis原理中,未能很好地阐述SDS与RedisObject的关系,在这里将其补充一下。

    首先说明一点,Redis中有一个对象系统,它是基于我们前面讲过的SDS,未讲过的双端链表,字典,压缩列表,整数集合等等数据结构来构建的。

    我们知道Redis的底层数据结构是优于C字符的简单动态字符串(Simple Dynamic String),比如说,我执行下面命令:

    这时候就创建了两个对象,一个是键对象,一个是值对象,键对象的底层实现是一个保存了"name"的SDS,值对象的底层实现是一个保存了"Mickle"的SDS。那么再说具体一点的话,这两个对象又是怎样的呢?下面我就用一张图片来解释:

    对于 Redis 数据库保存的键值对来说, 键总是一个字符串对象, 而值则可以是字符串对象、列表对象、哈希对象、集合对象或者有序集合对象的其中一种, 因此:

        当我们称呼一个数据库键为“字符串键”时, 我们指的是“这个数据库键所对应的值为字符串对象”;

        当我们称呼一个键为“列表键”时, 我们指的是“这个数据库键所对应的值为列表对象”,

        诸如此类。

    TYPE 命令的实现方式也与此类似, 当我们对一个数据库键执行 TYPE 命令时, 命令返回的结果为数据库键对应的值对象的类型, 而不是键对象的类型

                                                                                                                                                2019-06-08

    相关文章

      网友评论

          本文标题:Redis中SDS与RedisObject

          本文链接:https://www.haomeiwen.com/subject/kbrixctx.html