码迷,mamicode.com
首页 > 其他好文 > 详细

《Redis - 集合对象》

时间:2020-04-13 13:51:38      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:对象   net   code   key   版本   idt   https   get   字典实现   

一:概述

  - Redis 源码版本为3.0.0.

  - Redis 集合命令请戳。

  - OBJECT ENCODING key 查看数据底层类型实现。

 

二:集合对象的底层实现

  - 编码方式

    - 字符串对象共有两种编码方式  intset(整数集合) / hashtable(字典)

  - 编码方式的选择

    -  当列表对象 元素都是整数/元素数量小于512 则使用 intset(set-max-intset-entries) 。

    - 不满足条件则使用 hashtable.

  inset 编码方式

    - intset 编码 使用 Intset(数组) 作为底层实现。(以此来保证集合内唯一的元素)

    - 图示

      - 技术图片

 

 

 

  - hashtable 编码方式

    - 使用字典实现,字典的每个键都是一个字符串对象(包含了一个集合元素)(以此来保证集合内唯一的元素)。

    - 字典的每个值都是null(没什么作用)。

    - 图示

      - 技术图片

 

 

 

四:编码转换

  -  当 集合内 不单单保存整数/长度大于512 则会编码的转换 Intset -> hashtable.

 

五:集合命令的实现

  - 技术图片

 

《Redis - 集合对象》

标签:对象   net   code   key   版本   idt   https   get   字典实现   

原文地址:https://www.cnblogs.com/25-lH/p/12684147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!