Redis命令拾遗四——集合类型(命令补充)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Redis命令拾遗四——集合类型(命令补充)

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

 2016/8/20 5:30:38  坦荡  程序员俱乐部  我要评论(0)
  • 摘要:补充下上篇文章集合的命令。上篇地址博客园蜗牛http://www.cnblogs.com/tdws/p/5785939.htmlSCARDKey获得执行集合中元素的数量。SDIFFSTORE目标键keys...将集合做DIFF差集操作,并存储在目标键中。另外同样有SINTERSTORE,SUNIONSTORE.对于集合还不了解的童鞋,请看上篇文章。最后一个要介绍的命令就是SRANDMEMBERKey。从目标键中取随机一个元素。他是很有趣的。目前SetA中有十个元素,当你指定的返回数量为正数
  • 标签:命令 集合类

补充下上篇文章集合的命令。 上篇地址 博客园蜗牛 http://www.cnblogs.com/tdws/p/5785939.html 

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

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

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

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

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

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

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

有关散列函数,拉链法解决冲突请看百度百科链接

 

发表评论
用户名: 匿名