Redis学习小计(7) - 基本数据类型:集合(set)

Redis基本数据类型:集合(set)

  Redis内部使用两种结构来实现set

  • 哈希表(hashtable)
  • 整数集合(intset)

1. 哈希表(hashtable)

  在介绍哈希类型时已经提过了,这里就略过了
  使用这种结构时,redisObject.encoding = OBJ_ENCODING_HT


2. 整数集合(intset)

  当插入的值是整数时,Redis会使用intset结构来保存数据
  使用这种结构时,redisObject.encoding = OBJ_ENCODING_INTSET
  intset定义如下:

typedef struct intset {
  uint32_t encoding;
  uint32_t length;
  int8_t contents[];
} intset;

  • encoding - 数据的内部编码方式,现在有三种,分别对应int16,int32,int64
  • length - 元素个数
  • contents - 存储元素数组

3. command

  • SADD - Add one or more members to a set
  • SCARD - Get the number of members in a set
  • SDIFF - Subtract multiple sets
  • SDIFFSTORE - Subtract multiple sets and store the resulting set in a key
  • SINTER - Intersect multiple sets
  • SINTERSTORE - Intersect multiple sets and store the resulting set in a key
  • SISMEMBER - Determine if a given value is a member of a set
  • SMEMBERS - Get all the members in a set
  • SMOVE - Move a member from one set to another
  • SPOP - Remove and return one or multiple random members from a set
  • SRANDMEMBER - Get one or multiple random members from a set
  • SREM - Remove one or more members from a set
  • SSCAN - Incrementally iterate Set elements
  • SUNION - Add multiple sets
  • SUNIONSTORE - Add multiple sets and store the resulting set in a key

上一篇:Redis学习小计(6) - 基本数据类型:哈希(hash)
下一篇:Redis学习小计(8) - 基本数据类型:有序集合(sorted set)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值