SCARD Key获得执行集合中元素的数量。

Redis命令拾遗四——集合类型(命令补充)

SDIFFSTORE 目标键 keys ...  将集合做DIFF差集操作,并存储在目标键中。

另外同样有SINTERSTORE,SUNIONSTORE.对于集合还不了解的童鞋,请看上篇文章。

Redis命令拾遗四——集合类型(命令补充)

最后一个要介绍的命令就是SRANDMEMBER Key。从目标键中取随机一个元素。他是很有趣的。

目前SetA中有十个元素,当你指定的返回数量为正数,返回相应数量的随机数,如果大于集合数量,那么将集合全部元素返回。

但是如果你指定为负数,则会返回|负数|个,也就是说你指定-100,那么即使你只有十个元素,也会给你取出一百个元素。

Redis命令拾遗四——集合类型(命令补充)

Redis命令拾遗四——集合类型(命令补充)

Redis命令拾遗四——集合类型(命令补充)

另外我们可以看到上三张结果图,实际上,有时候也并不是那么随机,第一张和第三张图9的次数明显多,第二张图1的次数明显多。这是由于集合的存储结构——散列表造成的。其散列函数为了实现O(1)复杂度,会将元素映射到不同的“桶”当中,比如元素9被存到第一个桶当中,那么下一次进行随机数选择时,Redis先选择桶,那么自然第一个桶中数据少的话,被取出来的几率也就大大增加。

相关文章:

  • 2021-07-29
  • 2022-01-21
  • 2021-12-03
  • 2021-08-29
  • 2022-03-06
  • 2021-06-01
  • 2021-12-15
  • 2021-07-01
猜你喜欢
  • 2021-12-22
  • 2021-10-02
  • 2021-09-07
  • 2021-07-31
  • 2021-09-25
  • 2021-11-06
相关资源
相似解决方案