Redis命令拾遗四——集合类型(命令补充)
2017-03-21 17:08
239 查看
SCARD Key获得执行集合中元素的数量。
SDIFFSTORE 目标键 keys ... 将集合做DIFF差集操作,并存储在目标键中。
另外同样有SINTERSTORE,SUNIONSTORE.对于集合还不了解的童鞋,请看上篇文章。
最后一个要介绍的命令就是SRANDMEMBER Key。从目标键中取随机一个元素。他是很有趣的。
目前SetA中有十个元素,当你指定的返回数量为正数,返回相应数量的随机数,如果大于集合数量,那么将集合全部元素返回。
但是如果你指定为负数,则会返回|负数|个,也就是说你指定-100,那么即使你只有十个元素,也会给你取出一百个元素。
另外我们可以看到上三张结果图,实际上,有时候也并不是那么随机,第一张和第三张图9的次数明显多,第二张图1的次数明显多。这是由于集合的存储结构——散列表造成的。其散列函数为了实现O(1)复杂度,会将元素映射到不同的“桶”当中,比如元素9被存到第一个桶当中,那么下一次进行随机数选择时,Redis先选择桶,那么自然第一个桶中数据少的话,被取出来的几率也就大大增加。
SDIFFSTORE 目标键 keys ... 将集合做DIFF差集操作,并存储在目标键中。
另外同样有SINTERSTORE,SUNIONSTORE.对于集合还不了解的童鞋,请看上篇文章。
最后一个要介绍的命令就是SRANDMEMBER Key。从目标键中取随机一个元素。他是很有趣的。
目前SetA中有十个元素,当你指定的返回数量为正数,返回相应数量的随机数,如果大于集合数量,那么将集合全部元素返回。
但是如果你指定为负数,则会返回|负数|个,也就是说你指定-100,那么即使你只有十个元素,也会给你取出一百个元素。
另外我们可以看到上三张结果图,实际上,有时候也并不是那么随机,第一张和第三张图9的次数明显多,第二张图1的次数明显多。这是由于集合的存储结构——散列表造成的。其散列函数为了实现O(1)复杂度,会将元素映射到不同的“桶”当中,比如元素9被存到第一个桶当中,那么下一次进行随机数选择时,Redis先选择桶,那么自然第一个桶中数据少的话,被取出来的几率也就大大增加。
相关文章推荐
- Redis命令拾遗四(集合类型)—包含简单搜索筛选商品设计实例。
- Redis学习笔记(七)——Redis常用命令入门——有序集合类型
- Redis命令拾遗二(散列类型)
- Redis中7种集合类型应用场景&redis常用命令
- Redis有序集合数据类型操作命令
- Redis从基础命令到实战之有序集合类型(SortedSet)
- Redis无序集合数据类型操作命令
- Redis常用命令入门4:集合类型
- redis 学习手册之无序集合数据类型sets操作命令
- Redis命令拾遗一(字符串类型)
- Redis有序集合类型的常用命令小结
- Redis集合类型的常用命令小结
- Redis常用命令入门5:有序集合类型
- Redis从基础命令到实战之集合类型(Set)
- Redis学习笔记(六)——Redis常用命令入门——集合类型
- Redis常用的命令(六)------集合类型
- Redis有序集合数据类型操作命令
- Redis数据类型与指令详解之集合(t_set)
- Redis Hash类型数据常用命令总结
- NoSQL之Redis对zset(有序集合)数据类型的操作