一、常用方法
- 和List类型不同的是,Set集合中不允许出现重复的元素
- 添加/删除元素
- 获取集合中的元素
- 集合中的差集运算
- 集合中的交集运算
- 集合中的并集元算
- 扩展命令
1和2 添加/删除元素和获取集合中的元素和是否该元素
package myRedis01;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.After;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class JedisTest {
Jedis jedis=new Jedis("127.0.0.1",6379); // 创建客户端 设置IP和端口
/**
* 添加/删除元素
*/
@Test
public void addAndDel() {
/**
* set中添加和获取
*/
jedis.sadd("set1","a","b","c");
jedis.sadd("set1","a","d","e");
System.out.println("不会出现重复的元素:"+" "+jedis.smembers("set1"));
/**
* 删除元素
*/
jedis.srem("set1", "d","e");
System.out.println("删除两个元素后:"+" "+jedis.smembers("set1"));
/**
* 判断某个元素是否存在
*/
boolean flag=jedis.sismember("set1", "a");
System.out.println("是否存在该元素"+" "+flag);
}
@After
public void close() {
jedis.close();
}
}
3和4和5 计算差、交、并集
/**
* 计算差、交、并集
*/
@Test
public void scal() {
jedis.sadd("set5", "a", "b", "c");
jedis.sadd("set6", "b", "c", "d");
/**
* 差集
* jedis.sdiff("set2","set3") 结果返回set2有但是set3没有的元素
*/
Set<String> sets=jedis.sdiff("set5","set6");
System.out.println("计算差集");
for(String str:sets) {
System.out.println(str);
}
System.out.println("============");
/**
* 交集
*/
System.out.println("计算交集");
Set<String> sets2=jedis.sinter("set5","set6");
for(String str:sets2) {
System.out.println(str);
}
System.out.println("============");
/**
* 计算并集
*/
System.out.println("计算并集");
Set<String> sets3=jedis.sunion("set5","set6");
for(String str:sets3) {
System.out.println(str);
}
System.out.println("============");
}
6. 扩展命令
/**
* 扩展命令
*/
@Test
public void other() {
/**
* 计算元素总数
*/
jedis.sadd("set7", "b", "c", "d","e");
long sum=jedis.scard("set7");
System.out.println("元素总数为:"+" "+sum);
/**
* 随机取一个元素
*/
String rand=jedis.srandmember("set7");
System.out.println("随机取一个元素"+" "+rand);
}