当前位置: 首页 > article >正文

Redis集合对象

一. 编码

        集合对象的编码可以是intset或者hashtable。

        intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都保存在整数集合里面。

127.0.0.1:6379> sadd numbers 1 3 5
(integer) 3
127.0.0.1:6379> object encoding numbers
"intset"

        hashtable编码的集合对象使用字典作为底层实现,字典的每一个键都是一个字符串对象,每一个字符串对象包含了一个集合元素,而字典的值全部被置为NULL。

127.0.0.1:6379> sadd fruits 'cherry' 'apple' 'banana'
(integer) 3
127.0.0.1:6379> object encoding fruits
"hashtable"

 

二. 编码转换

        当一个集合对象同时满足下面两个条件时,使用intset编码:

  • 集合对象保存的所有元素都是整数值
  • 集合对象保存的元素数量不超过512个

        不满足时使用hashtable编码。也就是如果一开始使用的是intset作为集合对象的底层实现,当下面两个条件其中一个不满足时,集合对象会执行编码转化操作,将保存在整数集合中的元素转移到字典中,编码修改成hashtable。

        注意:第二个条件的上限值是可以修改的,具体看配置文件中的set-max-intset-entries选项说明。

三.集合命令实现


http://www.kler.cn/a/155118.html

相关文章:

  • uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别
  • web实操5——http数据详解,request对象功能
  • 软件测试面试大全(含答案+文档)
  • 如何判定linux系统CPU的核心架构
  • 量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
  • 【图像压缩感知】论文阅读:Self-supervised Scalable Deep Compressed Sensing
  • 对某登录站点的JS前端逆向思路
  • Git中如何按日期进行checkout
  • React--引入第三方插件时,标签名是小写报错问题
  • 创意项目开源,文生图、排序/优选等...,持续开源更新!!
  • docker-速通
  • Django大回顾 -3 之响应对象、cbv和fbv、关于类中self是谁的问题、上传文件、模版
  • 引用计数 Rc 数据类型
  • 【Python百宝箱】分布式魔法:穿越分布式奇境的导航
  • 深度学习——第1章 深度学习的概念及神经网络的工作原理
  • LeetCode 1423. 可获得的最大点数:滑动窗口
  • 智加科技获全国首张重卡无人驾驶开放道路测试牌照
  • RabbitMQ架构是什么样的
  • 【SpringBoot】讲清楚日志文件lombok
  • Hdoop学习笔记(HDP)-Part.09 安装OpenLDAP
  • mongodb查询数据库集合的基础命令
  • 学习Java第57天,Servlet的基本使用步骤
  • PTA结构体经典编程题
  • Android studio Load error:undefined path variables
  • ARM架构安全简介
  • 数据链路层之VLAN基本概念和基本原理