redis命令列操作set集合和java方式操作set集合
阿新 • • 發佈:2018-12-13
sadd key member [member ...] 向集合中增加元素 SMEMBERS key 查詢集合中所有的元素 srem key member [member ...] 移除集合中指定元素 SISMEMBER key member 判斷集合中是否存在某元素 SDIFF key [key ...] 計算集合差集 SINTER key [key ...] 計算集合交集 SUNION key [key ...] 計算集合並集 SCARD key 計算元素個數 SRANDMEMBER key [count] 隨機取集合中的一個元素 SDIFFSTORE destination key [key ...] 計算集合差集 將差集賦給新的集合 SINTERSTORE destination key [key ...] 計算集合交集 將差集賦給新的集合 SUNIONSTORE destination key [key ...] 計算集合並集 將並集賦給新的集合
一 命令列的方式
1 sadd 和smenmber 增加和查詢集合中的所有元素
127.0.0.1:6379> sadd set1 zhangsan lisi wangermazi
(integer) 3
127.0.0.1:6379> SMEMBERS set1
1) "zhangsan"
2) "wangermazi"
3) "lisi"
2 移除集合中的某個元素
127.0.0.1:6379> srem set1 zhangsan (integer) 1 127.0.0.1:6379> SMEMBERS set1 1) "wangermazi" 2) "lisi" 127.0.0.1:6379>
3 判斷集合中是否存在該元素
127.0.0.1:6379> SISMEMBER set1 zhangsan
(integer) 0
127.0.0.1:6379> SISMEMBER set1 wangmazi
(integer) 0
127.0.0.1:6379> SISMEMBER set1 lisi
(integer) 1
127.0.0.1:6379>
4 計算集合差集
127.0.0.1:6379> sadd set2 zhangsan lisi wangmazi zhaoqian sunli (integer) 5 127.0.0.1:6379> sdiff set1 set2 1) "wangermazi" 127.0.0.1:6379>
5 計算集合交集
27.0.0.1:6379> SINTER set1 set2
1) "lisi"
127.0.0.1:6379> SMEMBERS set1
1) "wangermazi"
2) "lisi"
127.0.0.1:6379>
6 計算集合並集
127.0.0.1:6379> SUNION set1 set2
1) "zhangsan"
2) "sunli"
3) "zhaoqian"
4) "wangermazi"
5) "lisi"
6) "wangmazi"
127.0.0.1:6379>
7 計算元素個數
127.0.0.1:6379> SCARD set1
(integer) 2
127.0.0.1:6379> SCARD set2
(integer) 5
127.0.0.1:6379>
8 隨機取集合中的一個元素
127.0.0.1:6379> SRANDMEMBER set1
"wangermazi"
127.0.0.1:6379> SRANDMEMBER set2
"sunli"
127.0.0.1:6379>
9 計算兩個集合的差集賦值給新的集合
127.0.0.1:6379> SDIFFSTORE set3 set1 set2
(integer) 1
127.0.0.1:6379> SMEMBERS set3
1) "wangermazi"
127.0.0.1:6379>
10 計算兩個集合的交集賦值給set3
127.0.0.1:6379> SINTERSTORE set3 set1 set2
(integer) 1
127.0.0.1:6379> SMEMBERS set3
1) "lisi"
127.0.0.1:6379>
11 計算兩個集合的並集 賦值給set3
127.0.0.1:6379> SUNIONSTORE set3 set1 set2
(integer) 6
127.0.0.1:6379> SMEMBERS set3
1) "zhangsan"
2) "sunli"
3) "zhaoqian"
4) "wangermazi"
5) "lisi"
6) "wangmazi"
127.0.0.1:6379>
二 java 操作set集合完成增刪改查
package redisUtils;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class RedisSet {
@Test
public void template(){// 模板
Jedis jedis = RedisUtils.getJedis();
jedis.close();
RedisUtils.close();
}
/**
* sadd
* smembers
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void sadd(){//
Jedis jedis = RedisUtils.getJedis();
jedis.sadd("setTest", "zhangsan","lisi","wangmazi");
Set<String> smembers = jedis.smembers("setTest");
System.out.println(smembers); //[zhangsan, wangmazi, lisi]
jedis.close();
RedisUtils.close();
}
/**
* srem
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void srem(){//
Jedis jedis = RedisUtils.getJedis();
jedis.srem("setTest", "zhangsan");
Set<String> smembers = jedis.smembers("setTest");
System.out.println(smembers); //[wangmazi, lisi]
jedis.close();
RedisUtils.close();
}
/**
* sismember
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void sismember(){//
Jedis jedis = RedisUtils.getJedis();
Boolean sismember = jedis.sismember("setTest", "zhangsan");
System.out.println(sismember); //false
jedis.close();
RedisUtils.close();
}
/**sdiff
* sdiffstore
* 計算集合差集 並將差集賦值給set3
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void sdiff(){
Jedis jedis = RedisUtils.getJedis();
Set<String> sdiff = jedis.sdiff("set1","set2");
System.out.println(sdiff);
Long sdiffstore = jedis.sdiffstore("set3", "set1","set2");
System.out.println("差集個數:"+sdiffstore);
Set<String> smembers = jedis.smembers("set3");
System.out.println("set3:"+smembers);
/**
* [wangermazi]
差集個數:1
set3:[wangermazi]
*/
jedis.close();
RedisUtils.close();
}
/**
* 計算兩個集合的交集 並將交集賦值給集合3
* sinter
* sinterstore
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void sinter(){
Jedis jedis = RedisUtils.getJedis();
Set<String> sinter = jedis.sinter("set1","set2");
System.out.println("相交元素個數:"+sinter);
Long sinterstore = jedis.sinterstore("set3","set1","set2");
System.out.println("相交個數:"+sinterstore);
Set<String> smembers = jedis.smembers("set3");
System.out.println("set3:"+smembers);
/**
* 相交元素個數:[lisi]
相交個數:1
set3:[lisi]
*/
jedis.close();
RedisUtils.close();
}
/**
* SUNION
* 計算集合並集 並將結果賦值給集合3
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void sunions(){
Jedis jedis = RedisUtils.getJedis();
Set<String> sunion = jedis.sunion("set1","set2");
System.out.println("並集資料:"+sunion);
Long sunionstore = jedis.sunionstore("set3", "set1","set2");
System.out.println("並集元素個數:"+sunionstore);
Set<String> smembers = jedis.smembers("set3");
System.out.println("set3:"+smembers);
/**
* 並集資料:[zhangsan, sunli, zhaoqian, wangermazi, lisi, wangmazi]
並集元素個數:6
set3:[zhangsan, sunli, zhaoqian, wangermazi, lisi, wangmazi]
*/
jedis.close();
RedisUtils.close();
}
/**
* 隨機取集合中的一個元素
* @Description: TODO(用一句話描述該檔案做什麼)
* @author guochao
* @date 2018年10月3日
*
*/
@Test
public void srandmember(){
Jedis jedis = RedisUtils.getJedis();
String srandmember = jedis.srandmember("set3");
System.out.println(srandmember); //zhangsan
jedis.close();
RedisUtils.close();
}
}