redis 的使用 ( set集合类型操作)
set 集合类型
释义:
redis 的 set 是 string 类型的无序集合
set 元素最大可以包含(2的32次方-1)个元素
关于 set 集合类型除了基本的添加删除操作 其他有用的操作还包含集合的
并集(union),交集(intersection),差集(difference).
通过这些操作实现SNS中的 好友推荐功能
注意:
每个集合中的各个元素不能重复
应用场合:
QQ好友的推荐
set 类型操作:
sadd key member
添加一个 string 元素到 key 对应的 set 集合中 成功返回 1 如果元素在集合中 返回0 若 key 对应的 set 集合不存在 返回错误
srem key member[member]
从 key 对应的 set 中移除给定的元素 成功返回 1
smove p1 p2 member
从 p1 对应 set 中移除 member 并添加到 p2 对应 set 中
scard key
返回 set 中元素的个数
sismember key member
判断 member 是否在 set 中
sinter key1 key2... keyN
返回所有给定 key 的交集
sunion key1 key2... keyN
返回所有给定 key 的并集
sdiff key1 key2... keyN
返回所有给定 key 的差集( 只有 key1 的 没有 key2 的)
smembers key
返回 key 对应 set 的所有元素 结果是无序的
eg:
laowen10 朋友圈 laowen20 朋友圈
公共朋友
laowen 11 laowen21
laowen 12 laowen01 laowen22
laowen 13 laowen02 laowen23
// 生成 laowen10 的朋友圈 的 set 集合
sadd laowen10 laowen11 // OK 表示添加OK
sadd laowen10 laowen12 // OK 表示添加OK
sadd laowen10 laowen13 // OK 表示添加OK
sadd laowen10 laowen01 // OK 表示添加OK
sadd laowen10 laowen02 // OK 表示添加OK
// 生成 laowen20 的朋友圈 的 set 集合
sadd laowen20 laowen21 // OK 表示添加OK
sadd laowen20 laowen22 // OK 表示添加OK
sadd laowen20 laowen23 // OK 表示添加OK
sadd laowen20 laowen01 // OK 表示添加OK
sadd laowen20 laowen02 // OK 表示添加OK
// 交集 获取到交集
sinter laowen10 laowen20
// 返回交集结果
// 1) "laowen01"
// 2) "laowen02"
// 并集 获取到并集
sunion laowen10 laowen20
// 返回并集结果
// 1) "laowen11"
// 2) "laowen12"
// 3) "laowen13"
// 4) "laowen21"
// 5) "laowen22"
// 6) "laowen23"
// 7) "laowen01"
// 8) "laowen02"
// 差集 获取到差集
sdiff laowen10 laowen20
// laowen10 与 laowen20 比较 返回只属于 laowen10 的集合
// 1) "laowen11"
// 2) "laowen12"
// 3) "laowen13"
sdiff laowen20 laowen10
// laowen20 与 laowen10 比较 返回只属于 laowen20 的集合
// 1) "laowen21"
// 2) "laowen22"
// 3) "laowen23"
// 获取给定元素的集合
smembers laowen10
// 获取到 laowen10 的 set 集合
// 1) "laowen11"
// 2) "laowen12"
// 3) "laowen13"
// 4) "laowen01"
// 5) "laowen02"
// 判断是否存在在对应的集合中
sismember laowen10 laowen11
// (integer) 1 // 说明 laowen11 在 laowen10 的 set 集合中
sismember laowen10 laowen21
// (integer) 0 // 说明 laowen21 不在 laowen10 的 set 集合中
// 获取到 key 对应的 set 集合中的元素的个数
scard laowen10
// (integer) 5 // 说明 有5个元素
// 移动元素
smove laowen10 laowen20 laowen11
// (integer) 1 // 将 laowen10 集合里面的元素 laowen11 移动到 laowen20 集合下
// 删除元素
srem laowen20 laowen11
// (integer) 1 // 将 laowen20 集合里面的元素 laowen11 删除
redis 的使用 ( set集合类型操作)的更多相关文章
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表
python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...
- redis 的使用 (sort set排序集合类型操作)
sort set排序集合类型 释义: sort set 是 string 类型的集合 sort set 的每个元素 都会关联一个 权 通过 权值 可以有序的获取集合中的元素 应用场合: 获取热门帖子( ...
- redis:order set有序集合类型的操作(有序集合)
1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ...
- Redis中7种集合类型应用场景
StringsStrings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字.使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更 ...
- Redis中7种集合类型应用场景&redis常用命令
Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: String Hash List Set Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部 ...
- 6.Set集合类型操作使用
Set集合类型 (1)介绍 redis的set是string类型的无序集合set元素最大可以包含(2的32次方-1)个元素关于set集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(u ...
- redis 的使用 ( list列表类型操作)
list 数据类型 列表类型 list 类型是一个双向操作 从链表的头部或者尾部添加删除元素 list 既可以用作栈 也可以用作队列 list 链表的类型应用场合: 获取最新的 10 个用户的信息 s ...
- 7.SortSet排序集合类型操作
Sort Set排序集合类型 (1)介绍 和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个权.通过权值可以有序的获取集合中的元素 该Sort Set类型适合 ...
- Redis命令拾遗四——集合类型(命令补充)
补充下上篇文章集合的命令. 上篇地址 博客园蜗牛 http://www.cnblogs.com/tdws/p/5785939.html SCARD Key获得执行集合中元素的数量. SDIFFSTOR ...
随机推荐
- 安装Django,运行django-admin.py startproject 工程名,后不出现指定的工程解决办法!!
第一次写博客,,,,, 在看我这篇教程的前提是你应该已经正确装好python和Django了,好了,废话不说了,正题走你!你现在是不是很纠结自己运行django-admin.py startpr ...
- 项目之solr全文搜索工具的安装
1. Solr简介 Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置, ...
- PHP之MVC项目实战(二)
本文主要包括以下内容 GD库图片操作 利用GD库实现验证码 文件上传 缩略图 水印 GD库图片操作 <?php $img = imagecreatetruecolor(500, 300); // ...
- 按键消抖-----verilog
实际系统中常用的按键大部分都是轻触式按键,如下图所示.该按键内部由一个弹簧片和两个固定触点组成,当弹簧片被按下,则两个固定触点接通,按键闭合.弹簧片松开,两个触点断开,按键也就断开了.根据这种按键的机 ...
- ASP.NET MVC中Controller返回值类型ActionResult
1.返回ViewResult视图结果,将视图呈现给网页 public class TestController : Controller { //必须存在Controller\Test\Index.c ...
- js自定义延迟执行函数
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Delphi中的函数指针判断是否为空
delphi函数指针 只有@@p才代表了函数指针本身的地址 assigned(p) 判断是否为空 或者用 @p=nil 来判断函数指针是不是为空 Delphi中的函数指针实际上就是指针,只是在使用 ...
- HTTP/1.1 中 If-Modified-Since 和 If-Unmodified-Since 区别简记
接触HTTP/1.1的时日还不多, 有时候看着这两个参数老是有点混淆, 今天终于理清了, 现记录下. 初学网络, 若有理解不对, 还请拍砖. If-Modified-Since: 从字面上看, ...
- MS SQL数据批量备份还原(适用于MS SQL 2005+) 分类: SQL Server 数据库 2015-03-10 14:32 103人阅读 评论(0) 收藏
我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦: 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命 ...
- phpcms 完美实现 导航栏当前栏目高亮
我们在用phpcms做网站的时候,经常碰到导航栏高亮功能,或者侧栏高亮,这个会涉及到几个问题: .栏目列表页子栏目高亮判断,如果当前页面为子栏目,他的顶级栏目如果在导航栏也要高亮. .内容页高亮,这个 ...