集合对象 - 《Redis设计与实现》读书笔记

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

  1. intset编码的集合对象使用整数集合作为底层实现

集合对象包含的所有元素都被保存在整数集合里面

  1. hashtable编码的集合对象使用字典作为底层实现

字典的每个键都是一个字符串对象,每个字符串对象包含了一个集合元素
字典的每个值都是NULL

编码转换

当集合对象可以【同时满足】以下条件时,集合对象的编码使用intset,否则使用hashtable编码,

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

编码的转换两个条件的上限值可通过配置文件中的set-max-intset-entries选项进行调整,

源码阅读

  1. 文件:src/t_set.c

相关文章

在笔者近 3 年的 Java 一线开发经历中,尤其是一些移动端、用...
这一篇文章拖了有点久,虽然在项目中使用分布式锁的频率比较...
本文梳理总结了一些 Java 互联网项目中常见的 Redis 缓存应用...
书接上回,消息通知系统(notification-system)作为一个独立...
Redis 是目前互联网后端的热门中间件之一,在许多方面都有深...
在Java Spring 项目中,数据与远程数据库的频繁交互对服务器...