redis学习笔记(六)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis学习笔记(六)

set(集合)

无序集合,重点就是去重无序

(1)添加元素

sadd key member1 member2 ...

向键authors的集合中添加元素zhangsanlisiwangwu

sadd authors zhangsan lisi wangwu

(2)获取集合的所有的成员

smembers key

获取键authors的集合中所有元素

smembers authors

(3)获取集合的长度

scard keys

获取s2集合的长度

sadd s2 a b c d e
127.0.0.1:6379> scard s2
(integer) 5

(4)随机抽取一个或多个元素

抽取出来的成员被删除掉

spop key [count=1]
# 注意:
# count为可选参数,不填则默认一个。被提取成员会从集合中被删除掉

随机获取s2集合的成员

sadd s2 a c d e
127.0.0.1:6379> spop s2 
"d"
127.0.0.1:6379> spop s2 
"c"

(5)删除指定元素

srem key value

删除键authors的集合中元素wangwu

srem authors wangwu

(6)交集、差集和并集

推荐、(协同过滤,基于用户、基于物品)

sinter  key1 key2 key3 ....    # 交集、比较多个集合中共同存在的成员
sdiff   key1 key2 key3 ....    # 差集、比较多个集合中不同的成员
sunion  key1 key2 key3 ....    # 并集、合并所有集合的成员,并去重
del user:1 user:2 user:3 user:4
sadd user:1 1 2 3 4     # user:1 = {1,2,3,4}
sadd user:2 1 3 4 5     # user:2 = {1,3,4,5}
sadd user:3 1 3 5 6     # user:3 = {1,3,5,6}
sadd user:4 2 3 4       # user:4 = {2,3,4}
# 交集
127.0.0.1:6379> sinter user:1 user:2
1) "1"
2) "3"
3) "4"
127.0.0.1:6379> sinter user:1 user:3
1) "1"
2) "3"
127.0.0.1:6379> sinter user:1 user:4
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> sinter user:2 user:4
1) "3"
2) "4"
# 并集
127.0.0.1:6379> sunion user:1 user:2 user:4
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
# 差集
127.0.0.1:6379> sdiff user:2 user:3
1) "4"  # 此时可以给user:3推荐4
127.0.0.1:6379> sdiff user:3 user:2
1) "6"  # 此时可以给user:2推荐6
127.0.0.1:6379> sdiff user:1 user:3
1) "2"
2) "4"


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
NoSQL Redis
Redis系列
(1)完全基于内存操作,数据都存在内存中 (2)采用单线程,避免了不必要的上下文切换带来的性能问题,也不用考虑锁的问题 (3)基于非阻塞的io多路复用机制 (4)数据结构简单,对数据操作简单
|
3月前
|
NoSQL API Redis
Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
111 16
|
9月前
|
存储 缓存 NoSQL
|
缓存 NoSQL 关系型数据库
|
NoSQL 安全 Redis
|
缓存 NoSQL 关系型数据库
redis-1
redis-1
63 1
|
存储 NoSQL Redis
Redis介绍
Redis介绍
92 0
|
存储 消息中间件 NoSQL
什么是Redis?
redis是一个高性能的key-value数据库。
87 0
|
NoSQL 关系型数据库 MySQL
Redis1
Redis1
91 0
|
NoSQL Redis 数据库
什么是Redis
Redis,即远程字典服务,是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,Key-Value数据库。类似于map
78 0