Redis之Set 集合

Redis Set 集合

Set 就是一个集合,集合的概念就是一堆不重复值的组合。利用 Redis 提供的 Set 数据结构,可以存储一些集合性的数据。

比如在 微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。
因为 Redis 非常人性化的为集合提供了 求交集、并集、差集等操作, 那么就可以非常方便的实现如共同关注、共同喜好、二度好友等功能, 对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。

应用场景

1.共同好友、二度好友

2.利用唯一性,可以统计访问网站的所有独立 IP

3.好友推荐的时候,根据 tag求交集,大于某个 临界值 就可以推荐

案例

以王宝强和马蓉为例,求二度好友,共同好友,推荐系统

127.0.0.1:6379> sadd marong_friend songdandan
(integer) 1
127.0.0.1:6379> sadd marong_friend wangsicong
(integer) 1
127.0.0.1:6379> sadd marong_friend songzhe
(integer) 1
127.0.0.1:6379> SMEMBERS marong_friend
1) "songzhe"
2) "wangsicong"
3) "songdandan"
127.0.0.1:6379> sadd wangbaoqiang_friend dengchao
(integer) 1
127.0.0.1:6379> sadd wangbaoqiang_friend angelababy
(integer) 1
127.0.0.1:6379> sadd wangbaoqiang_friend songzhe
(integer) 1

#求共同好友
127.0.0.1:6379> SINTER marong_friend wangbaoqiang_friend
1) "songzhe"

#推荐好友系统
127.0.0.1:6379> SDIFF marong_friend wangbaoqiang_friend
1) "wangsicong"
2) "songdandan"
127.0.0.1:6379>

时间: 2024-10-28 23:22:02

Redis之Set 集合的相关文章

Redis中有序集合的常用命令有哪些?

本文和大家分享的主要是redis 中有序集合类型的常用命令,一起来看看吧,希望对大家 学习redis有所帮助. 一.有序集合类型 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已.Redis 中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作.集合的元素依然是不能够相同的,但是分数可以相同. 下面列举有序集合和类型和列表类型的相似处: ① 两者都是有序的(废话!) ② 两者都可以获得某一范

Redis入门(集合)

集合 Redis的集合是字符串的无序集合.在Redis您可以添加,删除和测试文件是否存在,在成员O(1)的时间复杂度. 例子 redis 127.0.0.1:6379> sadd tutoriallist redis(integer) 1redis  127.0.0.1:6379> sadd tutoriallist mongodb(integer) 1redis  127.0.0.1:6379> sadd tutoriallist rabitmq(integer) 1redis  12

Redis中有序集合与列表占用内存分析

在说正题之前需要先了解几种定义:字典.压缩列表与跳跃表. 字典:非常常见的数据结构,key-value结构. 常见的实现有红黑树(stl中的map),哈希表(stl中的unordered_map).红黑树的查找操作具有O(logN)的时间复杂度.哈希表的查找操作具有O(1)的时间复杂度. redis中的字典使用哈希表作为底层实现. 压缩列表:由一些列特殊编码的连续内存块组成的顺序型数据结构. 压缩列表可以包含多种节点(只能保存一种的那叫数组). 压缩列表的优点是节省内存.顺序结构拥有的缺点压缩列

Redis Sets无序集合 存储操作方法

欢迎大家加入 459479177QQ群进行交流 这次介绍的是Sets无序集合 老生常谈,使用redis-cli进入我们的redis服务 [[email protected] ~]# redis-cli  127.0.0.1:6379> 1>sadd 方法:sadd key value [value...] 描述:往key添加一个或多个value,如果value元素存在则忽略 127.0.0.1:6379> smembers skey1 (empty list or set) 127.0.

redis 操作指令集合

redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字符串,哈希结构,链表,集合,因

Redis中Set集合命令 阿星小栈

集合(Set)? 附录,常用集合运算: A = {'a', 'b', 'c'} B = {'a', 'e', 'i', 'o', 'u'} inter(x, y): 交集,在集合x和集合y中都存在的元素. inter(A, B) = {'a'} union(x, y): 并集,在集合x中或集合y中的元素,如果一个元素在x和y中都出现,那只记录一次即可. union(A,B) = {'a', 'b', 'c', 'e', 'i', 'o', 'u'} diff(x, y): 差集,在集合x中而不在

.net redis数据缓存(二) redis操作List集合带分页

1.编写一个简单的redishelper类库,封装ServiceStack.Redis 1 public class RedisHelper 2 { 3 #region 基本用户名密码,使用配置文件 4 /// <summary> 5 /// 写入redis服务器的ip+port 6 /// </summary> 7 public static string WriteServerList = ConfigurationManager.AppSettings["Write

2016022613 - redis连接命令集合

redis连接命令 1.ping 用途:检查服务器是否正在运行 返回数据pong,表示服务器在运行. 2.quit 用途:关掉当前服务器连接 3.auth password 用途:服务器验证密码 没有设置密码 4.select index 用途:更改当前所选的数据库

2016022612 - redis事务命令集合

参考地址:http://www.yiibai.com/redis/redis_transactions.html Redis事务由指令 MULTI 启动,以EXEC结束. 1.multi 用途:事务开始标记 返回值:字符串ok 2.exec 用途:事务结束标记,MULTI后执行发出所有命令 3.discard 用途:当创建事务的时候,使用discard丢弃事务.