redis學習-集合set常用命令


redis學習-集合set常用命令

 

1.sadd:添加一個元素到集合中(集合中的元素無序的並且唯一)

 

2.smembers:查看集合中所有的元素(上圖事例)

 

3.srem:刪除結合中指定的元素

4.scard:返回集合元素的數量

5.SRandMember

如果不填寫返回個數,默認是1,如果填寫的數字大於集合的size,那么返回集合的所有元素

如果填寫的是負數,如果絕對值大於集合的size,那么返回值里會出現一個元素多次出現的情況。

如果key不存在,則返回nil

smove:將一個集合的元素轉移到另一個集合中

 

spop:從集合中隨機移出一個元素

 

 sismember:判斷元素是否在集合中,如果存在 返回1,否則返回0

 

sscan:使用游標獲取集合中的值

 

 

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
@Test
     public   void  scantest(){
         Jedis jedis= new  Jedis( "127.0.0.1" ,6379);
//      jedis.select(2);
//      for (int i = 0; i < 100; i++) {
//          jedis.sadd("scantest","scanceshi"+i);
//      }
////        System.out.println(m2);
         int  x=1;
         int  y=0;
         int  sum=0;
         ScanParams scanParams= new  ScanParams();
         scanParams.match( "scanceshi51" );
         Set<String> strings= new  TreeSet<String>();
         for (;;){
             ScanResult<String> scantest = jedis.sscan( "scantest" , y, scanParams);
             System. out .println(scantest.getStringCursor().toString()+ "----------取出:" +scantest.getResult().size()+ "----當前總數:" +(scantest.getResult().size()+sum));
             sum+=scantest.getResult().size();
             for  (String o : scantest.getResult()) {
                 strings.add(o);
             }
             if (scantest.getStringCursor().toString(). equals ( "0" ))  break ;
             y= Integer.parseInt(scantest.getStringCursor().toString());
         }
         System. out .println(strings.size());
         jedis.quit();
     }

  

 

從0開始,一直循環,會返回兩個集合,第幾個是游標的位置,如果為0那么說明執行結束,如果不為0,那么下次以第一個集合返回的值作為下次開始的位置如下

 

集合 並/交/差運算

SUNION:集合並運算

SUNIONSTORE:求並集后存到一個新的集合(如果結果集存入到已有的集合,那么會覆蓋以后的數據集合)

 sinter/sinterstore同上

 

sdiff/sdiffstore同上

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM