• Redis 设计与实现 (一)--数据结构


    底层数据结构:动态字符串、字典、整数集合、双端链表、压缩列表

    字符串对象:

      int    浮点数值

      raw  字符串值>32字节

      embstr   字符串值<32字节

    字符串编码转换:

      int => raw    int追加的值为字符串

      embstr => raw    embstr任何修改

    列表对象:

      ziplist   底层 - 压缩列表

      linkedlist  底层 - 双向链表

    哈希对象:

      ziplist 底层 - 压缩列表

             新加键值对,先将键打入压缩列表的表尾,然后同样方式保存值。

          同一个键值对挨在一起,键值对有先来后到。

        哈希对象所有键值对的字符串长度<64字节

        哈希对象所有键值对数量<512个

      hashtable  底层 - 字典

          字典键和值都是字符串对象。

    集合对象:

      intset  底层 - 整数集合

         集合对象保存的都是整数值

         不超过512个元素

      hashtable 底层 - 字典 

    有序集合对象:

       ziplist  底层 - 压缩列表  按照元素分值排序

          元素长度<64字节

          元素个数<128

       skiplist 底层 -  zset结构(字典+跳跃表) 

    类型检查和命令多态

      操作键:del  explre  rename  type  object

      字符串键:set  get  append  strlen

      哈希键:hdel  hset  hget  hlen

      列表键:rpush  lpop  linsert  llen

         集合键:sadd  spop  sinter  scard 

      有序集合:zadd  zcard  zrank  zscore  

    类型检查: redisObject  type

    多态命令

    内存回收:引用计数

    对象共享:将数据库键的值指针指向现有的值对象。

         共享值引用计数+1

    对象的空转时长:

         lru   对象最后一次被命令访问的时间

         object idletime  空转时间

  • 相关阅读:
    注意 定义类的时候 不要null 别忘了new 实例化 否则报错
    如果通过key获取dictionary里面的value
    C#邮箱身份验证
    时间选择器 可以选择日期和时间
    C#的Timer解析
    使用微软的组件发邮件
    将html代码写入临时文件夹下面的 然后发来给webbrowser使用
    c#中DataGridView 如何设置 才能选中一行 设置鼠标事件
    lumisoft 获取邮件的方法
    C# 动态添加CheckedListBox的选项,并设置选项为 选中? 怎么做?
  • 原文地址:https://www.cnblogs.com/sunchong/p/8250423.html
Copyright © 2020-2023  润新知