随笔 - 934, 文章 - 0, 评论 - 249, 阅读 - 345万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Redis的Set数据类型

Posted on   蝈蝈俊  阅读(457)  评论(0编辑  收藏  举报

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

本文的命令参考:http://www.redisdoc.com/en/latest/set/index.html

简单的增加,查看功能

127.0.0.1:6379> smembers birds
(empty list or set)
127.0.0.1:6379> sadd birds crow
(integer) 1
127.0.0.1:6379> sadd birds pigeon
(integer) 1
127.0.0.1:6379> sadd birds bat
(integer) 1
127.0.0.1:6379> smembers birds
1) "pigeon"
2) "bat"
3) "crow"
127.0.0.1:6379> sadd mammals dog
(integer) 1
127.0.0.1:6379> sadd mammals cat
(integer) 1
127.0.0.1:6379> sadd mammals bat
(integer) 1
127.0.0.1:6379> smembers mammals
1) "dog"
2) "bat"
3) "cat"
127.0.0.1:6379>

删除元素

参考:http://www.redisdoc.com/en/latest/set/srem.html

SREM key member [member ...]

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

当 key 不是集合类型,返回一个错误。

127.0.0.1:6379> smembers mammals
1) "dog"
2) "bat"
3) "cat"
127.0.0.1:6379> srem mammals cat
(integer) 1
127.0.0.1:6379> smembers mammals
1) "dog"
2) "bat"
127.0.0.1:6379> sadd mammals human
(integer) 1
127.0.0.1:6379> smembers mammals
1) "dog"
2) "human"
3) "bat"

交集比较:

SINTER key [key ...]

返回一个集合的全部成员,该集合是所有给定集合的交集。

不存在的 key 被视为空集。

当给定集合当中有一个空集时,结果也为空集(根据集合运算定律)。

SUNION key [key ...]

返回一个集合的全部成员,该集合是所有给定集合的并集。

不存在的 key 被视为空集。

SDIFF key [key ...]

返回一个集合的全部成员,该集合是所有给定集合之间的差集。

不存在的 key 被视为空集。

127.0.0.1:6379> smembers mammals
1) "dog"
2) "human"
3) "bat"
127.0.0.1:6379> smembers birds
1) "pigeon"
2) "bat"
3) "crow"
127.0.0.1:6379> sinter birds mammals
1) "bat"
127.0.0.1:6379> sunion birds mammals
1) "dog"
2) "crow"
3) "bat"
4) "pigeon"
5) "human"
127.0.0.1:6379> sdiff birds mammals
1) "pigeon"
2) "crow"
127.0.0.1:6379> sdiff mammals birds
1) "dog"
2) "human"
127.0.0.1:6379>

 

参考资料:

Redis 命令参考
http://www.redisdoc.com/en/latest/index.html

十五分钟介绍 Redis数据结构
http://blog.nosqlfan.com/html/3202.html

Redis系统性介绍
http://blog.nosqlfan.com/html/3139.html

Redis之七种武器
http://blog.nosqlfan.com/html/2942.html

试用redis
http://try.redis.io/

Redis 设计与实现
http://www.redisbook.com/en/latest/

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示