Redis命令拾遗四——集合类型(命令补充)
补充下上篇文章集合的命令。 上篇地址 博客园蜗牛 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先选择桶,那么自然第一个桶中数据少的话,被取出来的几率也就大大增加。
有关散列函数,拉链法解决冲突请看百度百科链接
Redis命令拾遗四——集合类型(命令补充)的更多相关文章
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表
		python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ... 
- Redis中7种集合类型应用场景&redis常用命令
		Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ... 
- Redis之无序集合类型命令
		Redis 集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找 ... 
- Redis中7种集合类型应用场景
		StringsStrings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ... 
- redis 的使用 ( set集合类型操作)
		set 集合类型 释义: redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ... 
- redis:order set有序集合类型的操作(有序集合)
		1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ... 
- Linux性能监控分析命令(四)—top命令介绍
		性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ... 
- Redis命令拾遗四(集合类型)—包含简单搜索筛选商品设计实例。
		本文版权,归博客园和作者吴双共同所有.转载和爬虫请注明博客园蜗牛Redis系列文章地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis数据类型之集合(Set) ... 
- Redis 常用命令学四:集合类型命令
		1.增加和删除命令 127.0.0.1:6379> SADD st a (integer) 1 127.0.0.1:6379> SADD st r f g (integer) 3 127. ... 
随机推荐
- 《R in Action》读书笔记(1)
			MindMapper 原文件 
- Step by Step 创建一个新的Dynamics CRM Organization
			原创地址:http://www.cnblogs.com/jfzhu/p/4012833.html 转载请注明出处 前面演示过如何安装Dynamics CRM 2013,参见<Step by st ... 
- Thread.Sleep引发ThreadAbortException异常
			短信平台记录日志模块,是通过异步方式来记录的,即日志工具类里初始化一个Queue对象,公共的写日志方法的处理逻辑是把日志消息放到Queue里.构造器里设定一个死循环,不停的读队,然后把日志消息持久化到 ... 
- Java针对数据库增删改查代码
			package com.bank.abc; import java.beans.PropertyVetoException; import java.sql.Connection; import ja ... 
- 敏捷是什么?PMO是什么?
			敏捷组织中PMO应遵循的准则 敏捷改变了人们的工作方式,不仅仅是开发部门,而且还包括其它的部门,例如HR.财务以及PMO等.在大多数组织中,PMO是一个控制体.它指导项目团队的规范.模板以及流程.目前 ... 
- PHP  数据访问
			如何连接 1.造连接对象 $db= new MySQLi("localhost","root","123","mydb" ... 
- fir.im Weekly - 暖心的 iOS 持续集成,你值得拥有
			一则利好消息,flow.ci 支持 iOS 项目持续集成,想试试的伙伴去 Gitter群 问问.首批尝鲜用户@阿米amoy 已经用 flow.ci 实现了基本的 iOS 持续集成,并详细记录整个 Bu ... 
- fix orphaned user
			orphan user是某个数据库的user,只有user name而没有login,即,在存在于sys.database_principals 中, 而不存在于 sys.server_princip ... 
- Building OpenCascade on Windows with Visual Studio
			Building OpenCascade on Windows with Visual Studio eryar@163.com 摘要Abstract:详细说明OpenCascade的编译配置过程,希 ... 
- Android 如何制作九宫格图片(.9.png)
			对于编程人员来说,尤其是前端设计设计师,九宫格图片是必须的(.9.png),对于初学者来说不知道这个九宫格图片有什么用,其实这个九宫格图片实际常用在Android的button组件.要上下拉升的背景图 ... 
