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同上