網站首頁 編程語言 正文
Redis基本數據類型Set常用操作
Set是String類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據。
另外,redis中的set是通過哈希表實現的,所以添加,刪除,查找的復雜度都是 O(1)。
一、sadd 添加一個、多個元素
將一個或多個成員元素加入到集合中,已經存在于集合的成員元素將被忽略。
若key不存在,則創建一個只包含添加的元素作成員的集合。
sadd myset hello pingguo test
若key不是集合類型時,返回一個錯誤。
二、smembers 查看集合
返回集合中的所有的成員。
smembers myset
三、scard 元素數量
返回集合中元素的數量。
scard myset
四、srem 移除一個、多個元素
用于移除集合中的一個或多個成員元素,不存在的成員元素會被忽略。
當key不是集合類型,返回一個錯誤。
srem myset hello test
五、srandmember 隨機元素
用于返回集合中的一個隨機元素。
srandmember myset 3
這里隨機抽取3個元素,注意這里僅僅返回隨機元素,而不對集合進行任何改動。
六、spop 隨機移除一個、多個元素
移除集合中的指定key的一個或多個隨機元素,移除后會返回移除的元素。
spop myset 2
跟上面的srandmember
區別開,雖然都是隨機,但是這里的spop
修改了集合。
七、smove 移動元素到目標集合
smove source destination member將指定成員 member 元素從 source 集合移動到 destination 集合。
smove myset myset2 pingguo
如果原集合不存在或不包含指定的元素,則不執行任何操作,僅返回 0。否則,移動成功。
如果目標集合里已經存在了此元素,那么命令只會移除原集合里的元素。
八、sdiff 差集
返回第一個集合與其他集合之間的差異,也可以說是第一個集合中獨有的元素。
sdiff myset myset2 myset3
注意,這里差集的結果來自前面的myset
。
九、sinter 交集
返回給定所有給定集合的交集,當給定集合當中有一個空集時,結果也為空集。
sinter myset myset2 myset3sinter myset myset3
這里當比較3個集合myset myset2 myset3
時,myset2
里跟其他2個沒有任何交集,所以整個結果返回空集。
十、sunion 并集
返回給定集合的并集,不存在的集合 key 被視為空集。
sunion myset myset2 myset3
集合利用差、并、交集可以用來實現一些場景的功能。比如社交軟件中,把A用戶關注的所有人放到一個set里,然后將B用戶的粉絲放另一個set2里。
那么A, B兩個用戶共同關注的人就是交集了。
原文鏈接:https://blog.csdn.net/wessonlan/article/details/124813033
相關推薦
- 2022-08-28 python?數據保存為npy和npz格式并讀取的完整代碼_python
- 2021-11-29 c++11?chrono全面解析(最高可達納秒級別的精度)_C 語言
- 2022-07-28 XML基本概念XPath、XSLT與XQuery函數介紹_XML/RSS
- 2023-05-23 Python實現指定數組下標值正序與倒序排序算法功能舉例_python
- 2022-08-12 C#實現簡單的字符串加密_C#教程
- 2022-08-03 C++?sort排序函數用法詳解_C 語言
- 2023-07-24 利用keyup事件實現input框輸入0-1之間的數字且最多只能保留2位小數
- 2023-03-28 python數組如何添加整行或整列_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支