1. 程式人生 > >redis命令列操作set集合和java方式操作set集合

redis命令列操作set集合和java方式操作set集合

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();
	}
	
}