redis基本操作 —— set

来源:https://www.cnblogs.com/chinxi/archive/2020/06/05/13049152.html
-Advertisement-
Play Games

一、向集合添加一個或多個成員 命令:sadd 格式:sadd key member1 [member2] 127.0.0.1:6379> sadd set_key m1 (integer) 1 127.0.0.1:6379> sadd set_key m2 m3 (integer) 2 二、返回集合 ...


一、向集合添加一個或多個成員

  命令:sadd

  格式:sadd key member1 [member2]

127.0.0.1:6379> sadd set_key m1
(integer) 1
127.0.0.1:6379> sadd set_key m2 m3
(integer) 2

二、返回集合中的所有成員

  命令:smembers

  格式:smembers key

127.0.0.1:6379> smembers set_key
1) "m3"
2) "m2"
3) "m1"

 三、移除並返回集合中的一個隨機元素

  命令:spop

  格式:spop key

127.0.0.1:6379> sadd set_key m1 m2 m3 m4 m5 m6 m7 m8 m9
(integer) 9
127.0.0.1:6379> smembers set_key
1) "m8"
2) "m2"
3) "m3"
4) "m6"
5) "m1"
6) "m5"
7) "m4"
8) "m7"
9) "m9"
127.0.0.1:6379> spop set_key
"m5"
127.0.0.1:6379> smembers set_key
1) "m6"
2) "m1"
3) "m4"
4) "m7"
5) "m8"
6) "m3"
7) "m2"
8) "m9"

四、移除集合中一個或多個成員

  命令:srem

  格式:srem set_key member1 [member2]

127.0.0.1:6379> smembers set_key
1) "m6"
2) "m1"
3) "m4"
4) "m7"
5) "m8"
6) "m3"
7) "m2"
8) "m9"
127.0.0.1:6379> srem set_key m1 m2 m3
(integer) 3
127.0.0.1:6379> smembers set_key
1) "m8"
2) "m4"
3) "m6"
4) "m9"
5) "m7"
127.0.0.1:6379> srem set_key m1 m2 m3
(integer) 0
127.0.0.1:6379> smembers set_key
1) "m8"
2) "m4"
3) "m6"
4) "m9"
5) "m7"

五、判斷 member 元素是否是集合 key 的成員

  命令:sismember

  格式:sismember key member

127.0.0.1:6379> smembers set_key
1) "m8"
2) "m4"
3) "m6"
4) "m9"
5) "m7"
127.0.0.1:6379> sismember set_key m8
(integer) 1
127.0.0.1:6379> sismember set_key m1
(integer) 0

六、獲取集合的成員數

  命令:scard

  格式:scard key

127.0.0.1:6379> smembers set_key
1) "m8"
2) "m4"
3) "m6"
4) "m9"
5) "m7"
127.0.0.1:6379> scard set_key
(integer) 5

七、返回給定所有集合的差集

  命令:sdiff

  格式:sdiff key1 [key2] ...

127.0.0.1:6379> sadd k1 m1 m2 m3
(integer) 3
127.0.0.1:6379> sadd k2 m3 m4 m5
(integer) 3
127.0.0.1:6379> sdiff k1
1) "m2"
2) "m3"
3) "m1"
127.0.0.1:6379> sdiff k1 k2
1) "m2"
2) "m1"
127.0.0.1:6379> sdiff k1 k2
1) "m2"
2) "m1"
127.0.0.1:6379> sdiff k2 k1
1) "m4"
2) "m5"
127.0.0.1:6379> sadd k3 m5 m6 m7
(integer) 3
127.0.0.1:6379> sdiff k1 k2 k3
1) "m2"
2) "m1"
127.0.0.1:6379> sdiff k2 k1 k3
1) "m4"

八、返回給定所有集合的差集並存儲在 destination 中

  命令:sdiffstore

  格式:sdiffstore destination key1 [key2] ...

127.0.0.1:6379> sadd k1 m1 m2 m3
(integer) 3
127.0.0.1:6379> sadd k2 m3 m4 m5
(integer) 3
127.0.0.1:6379> sadd k3 m5 m6 m7
(integer) 3
127.0.0.1:6379> sdiffstore d1 k1 k2
(integer) 2
127.0.0.1:6379> smembers d1
1) "m2"
2) "m1"
127.0.0.1:6379> sdiffstore d2 k2 k1
(integer) 2
127.0.0.1:6379> smembers d2
1) "m4"
2) "m5"
127.0.0.1:6379> sdiff d1 k3
1) "m2"
2) "m1"
127.0.0.1:6379> sdiff k1 k2 k3
1) "m2"
2) "m1"
127.0.0.1:6379> sdiff d2 k3
1) "m4"
127.0.0.1:6379> sdiff k2 k1 k3
1) "m4"

九、返回給定所有集合的交集

  命令:sinter

  格式:sinter key1 [key2] ...

127.0.0.1:6379> sadd k1 m1 m2 m3
(integer) 3
127.0.0.1:6379> sadd k2 m2 m3 m4
(integer) 3
127.0.0.1:6379> sadd k3 m3 m4 m5
(integer) 3
127.0.0.1:6379> sinter k1 k2
1) "m3"
2) "m2"
127.0.0.1:6379> sinter k1 k2 k3
1) "m3"
127.0.0.1:6379> sinter k2 k1
1) "m3"
2) "m2"
127.0.0.1:6379> sinter k2 k1 k3
1) "m3"

十、返回給定所有集合的交集並存儲在 destination 中

  命令:sinterstore

  格式:sinterstore destination key1 [key2] ...

127.0.0.1:6379> sadd k1 m1 m2 m3
(integer) 3
127.0.0.1:6379> sadd k2 m2 m3 m4
(integer) 3
127.0.0.1:6379> sadd k3 m3 m4 m5
(integer) 3
127.0.0.1:6379> sinter k1 k2
1) "m3"
2) "m2"
127.0.0.1:6379> sinter k1 k2 k3
1) "m3"
127.0.0.1:6379> sinter k2 k1
1) "m3"
2) "m2"
127.0.0.1:6379> sinter k2 k1 k3
1) "m3"
127.0.0.1:6379> sinterstore d1 k1 k2
(integer) 2
127.0.0.1:6379> smembers d1
1) "m2"
2) "m3"
127.0.0.1:6379> sinterstore d2 k1 k2 k3
(integer) 1
127.0.0.1:6379> smembers d2
1) "m3"

十一、將 member 元素從 source 集合移動到 destination 集合

  命令:smove

  格式:smove src des members

127.0.0.1:6379> sadd src m1 m2 m3
(integer) 3
127.0.0.1:6379> sadd des m4 m5 m6
(integer) 3
127.0.0.1:6379> smembers src
1) "m3"
2) "m2"
3) "m1"
127.0.0.1:6379> smembers des
1) "m4"
2) "m6"
3) "m5"
127.0.0.1:6379> smove src des m1
(integer) 1
127.0.0.1:6379> smembers src
1) "m3"
2) "m2"
127.0.0.1:6379> smembers des
1) "m4"
2) "m6"
3) "m1"
4) "m5"
127.0.0.1:6379> smove src des m0
(integer) 0
127.0.0.1:6379> smembers src
1) "m3"
2) "m2"
127.0.0.1:6379> smembers des
1) "m4"
2) "m6"
3) "m1"
4) "m5"

十二、返回集合中一個或多個隨機數

  命令:srandmember

  格式:srandmember key [count]

127.0.0.1:6379> sadd rand_set m1 m2 m3 m4 m5 m6 m7 m8
(integer) 8
127.0.0.1:6379> smembers rand_set
1) "m8"
2) "m2"
3) "m3"
4) "m6"
5) "m1"
6) "m5"
7) "m4"
8) "m7"
127.0.0.1:6379> srandmember rand_set
"m8"
127.0.0.1:6379> srandmember rand_set 
"m6"
127.0.0.1:6379> srandmember rand_set 3
1) "m8"
2) "m5"
3) "m7"

十三、返回所有給定集合的並集

  命令:sunion

  格式:sunion key1 [key2] ...

127.0.0.1:6379> sadd k1 m1 m2
(integer) 2
127.0.0.1:6379> sadd k2 m3 m4
(integer) 2
127.0.0.1:6379> sadd k3 m1 m3 m5 m6
(integer) 4
127.0.0.1:6379> sunion k1 k2
1) "m4"
2) "m3"
3) "m2"
4) "m1"
127.0.0.1:6379> sunion k1 k3
1) "m6"
2) "m1"
3) "m2"
4) "m3"
5) "m5"
127.0.0.1:6379> sunion k1 k2 k3
1) "m2"
2) "m3"
3) "m6"
4) "m1"
5) "m5"
6) "m4"

十四、所有給定集合的並集存儲在 destination 集合中

  命令:sunionstore

  格式:sunionstore destination key1 [key2] ...

127.0.0.1:6379> sadd k1 m1 m2
(integer) 2
127.0.0.1:6379> sadd k2 m3 m4
(integer) 2
127.0.0.1:6379> sadd k3 m1 m3 m5 m6
(integer) 4
127.0.0.1:6379> sunion k1 k2
1) "m4"
2) "m3"
3) "m2"
4) "m1"
127.0.0.1:6379> sunion k1 k3
1) "m6"
2) "m1"
3) "m2"
4) "m3"
5) "m5"
127.0.0.1:6379> sunion k1 k2 k3
1) "m2"
2) "m3"
3) "m6"
4) "m1"
5) "m5"
6) "m4"
127.0.0.1:6379> sunionstore d1 k1 k2
(integer) 4
127.0.0.1:6379> smembers d1
1) "m4"
2) "m3"
3) "m2"
4) "m1"
127.0.0.1:6379> sunionstore d2 k1 k2 k3
(integer) 6
127.0.0.1:6379> smembers d2
1) "m2"
2) "m3"
3) "m6"
4) "m1"
5) "m5"
6) "m4"

十五、迭代集合中的元素

  命令:sscan

  格式:sscan key cursor [MATCH pattern] [COUNT count] 

127.0.0.1:6379> sadd set_key m1 m2 m3 member1 member2 member3
(integer) 6
127.0.0.1:6379> sscan set_key 0
1) "0"
2) 1) "member1"
   2) "member3"
   3) "m2"
   4) "m3"
   5) "member2"
   6) "m1"
127.0.0.1:6379> sscan set_key 0 MATCH m*
1) "0"
2) 1) "member1"
   2) "member3"
   3) "m2"
   4) "m3"
   5) "member2"
   6) "m1"
127.0.0.1:6379> sscan set_key 0 MATCH me*
1) "0"
2) 1) "member1"
   2) "member3"
   3) "member2"
127.0.0.1:6379> sscan set_key 0 MATCH me* COUNT 1
1) "1"
2) 1) "member1"
   2) "member3"
127.0.0.1:6379> sscan set_key 0 MATCH me* COUNT 0
(error) ERR syntax error
127.0.0.1:6379> sscan set_key 0 MATCH me* COUNT 3
1) "3"
2) 1) "member1"
   2) "member3"
   3) "member2"

 

參考鏈接:https://www.runoob.com/redis/redis-strings.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 編譯安裝apache2.2對應的mod_proxy_fcgi.so模塊步驟,因為使用apache--phpfpm 需要這個 #mod-proxy-fcgi-master 模塊步驟 [root@iZ25ja2kaemZ apache]# wget https://github.com/ceph/mod ...
  • php多版本:已存在php5場景下,編譯安裝php7,實現apache2.2--php-fpm7通信 wget --no-check-certificate https://www.php.net/distributions/php-7.2.31.tar.gz tar xzvf php-7.2.31 ...
  • php安裝擴展時報錯:make: *** [mbstring.lo] Error 1,解決方案 您需要加入加入配置選項--with-php-config=/usr/local/php746/bin/php-config,該選項必須加進去否則容易在make的時候報錯make: *** [mbstrin ...
  • phpize安裝php擴展(本文章以php7擴展mbstring為案例) #找到php7安裝目錄下的phpize位置,/usr/local/php746/bin/phpize,註意如果pc安裝了多個版本的php,那麼在哪個php版本中添加擴展,就要找到對應那個版本的php安裝目錄下的phpize # ...
  • 靜態RAM的基本構造塊是SRAM存儲單元。通過升高字線的電平觸發存儲單元,再通過位線對所觸發的存儲單元進行讀出或寫入。在靜態CMOS存儲器中,存儲單元陣列將會占去整個存儲器晶元面積的一半以上,在一些大容量的SRAM中,這個比例還要更大一些。因而減小存儲單元出的面積變得尤為重要。一方面我們希望單元面積 ...
  • ##1.1 前言 很久之前在做一個網站的時候,發現的一個問題。 之前在搭建完網站需要啟動Mysql的時候,死活啟動不了。為什麼?我查了下日誌,發現是etc/mysql/下的Mysql配置文件一直無法生成。 這個文件一般是隨著Mysql服務重啟的時候會自動生成到etc/配置文件下。我當前的機器記憶體是很 ...
  • linux文件系統: 文件系統常用的Linux分為EXT1,EXT2,EXT3,EXT4,xfs,vfat等 windows:NTFS,fat12,fat16等 linux分區: linux文件分區工具有: fdisk 主要為msdos(MBR)分區表支持 最多只可以分出4個主分區或者3個主分區(p ...
  • 巨杉資料庫榮譽入選中國企業服務競爭力榜單,技術產品方向和企業級市場領先地位再獲認可。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...