zoukankan      html  css  js  c++  java
  • 【JavaP6大纲】Redis篇:数据类型的底层数据结构sds?

    数据类型的底层数据结构sds?

    每次在Redis数据库中创建一个键值对时,至少会创建两个对象,一个是键对象,一个是值对象,而Redis中的每个对象都是由 redisObject对象,对象的属性有type类型,encoding编码,*ptr指向底层数据结构的指针,refcount引用计数,lru记录最后一次被程序访问的时间

    对象的type属性记录了对象的类型,就是前面讲的五大数据类型,在Redis中,键总是一个字符串对象,而值可以是字符串、列表、集合等对象。对象的 prt 指针指向对象底层的数据结构,而数据结构由 encoding 属性来决定,refcount引用计数用作内存回收机制:创建一个新对象,属性 refcount 初始化为1,对象被一个新程序使用,属性 refcount 加 1,对象不再被一个程序使用,属性 refcount 减 1,当对象的引用计数值变为 0 时,对象所占用的内存就会被释放。

    字符串是Redis最基本的数据类型,不仅所有key都是字符串类型,字符串的长度不能超过512M。

    ①、编码:字符串对象的编码可以是int,raw或者embstr。int 编码是用来保存整数值,raw编码是用来保存长度大于44字节长字符串,而embstr是用来保存长度小于44字节短字符串。其实 embstr 编码是专门用来保存短字符串的一种优化编码,embstr与raw都使用redisObject和sds保存数据,区别在于,embstr的使用只分配一次内存空间(因此redisObject和sds是连续的),而r

  • 相关阅读:
    第一次学习打卡
    第一次Java作业
    浏览器兼容问题汇总
    js 获取js自身参数
    文字内容展开与折叠jquery代码
    Jquery DIV滚动至浏览器顶部位置固定
    js操作cookie方法
    利用CSS边框合并属性打造table细边框
    js获取当前日期及获取当前日期的前一天日期函数
    asp.net抓取网页html源代码失败 只因UserAgent作怪
  • 原文地址:https://www.cnblogs.com/javawxid/p/15644473.html
Copyright © 2011-2022 走看看