zoukankan      html  css  js  c++  java
  • 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  空转时间

  • 相关阅读:
    CSS
    javaScript高级:BOM和DOM
    Layui在弹出层实现轮播图效果
    SQL
    jQuery基础
    清除重复值:distinct
    tomcat的server.xml中进行配置来实现访问本地电脑的图片
    jQuery高级
    javascript基础:ECMAScript
    设计模式六大原则【设计模式学习开篇】
  • 原文地址:https://www.cnblogs.com/sunchong/p/8250423.html
Copyright © 2011-2022 走看看