您的位置:首页 > 理论基础 > 数据结构算法

3.redis数据结构和常用命令(三)

2019-07-04 13:27 1396 查看

1.set

1. 无序且独一无二的string元素集合

sadd key member1 [member2]:增加多个成员

scard key:统计成员数

sdiff key1 [key2]:找出两个集合的差集,key1中key2没有的成员
sidffstore des key1 [key2]:将差集保存到des集合中

sinter key1 [key2]:求两个集合的交集

sismember key member:判断member是否为key的成员

smembers key:返回所有成员

smove src des member:将成员member从集合src移到des中

spop key:随机弹出一个成员

srandmember key [count]:随机返回一个或多个成员,count为限制返回的总数

srem key member1 [member2]:移除成员

sunion key1 [key2]:求并集


2.在java程序中

// 请把RedisTemplate值序列化器设置为StringRedisSerializer测试该代码片段
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
RedisTemplate redisTemplate = applicationContext.getBean(RedisTemplate.class);
Set set = null;
// 将元素加入列表
redisTemplate.boundSetOps("set1").add("v1", "v2", "v3", "v4", "v5", "v6");
redisTemplate.boundSetOps("set2").add("v0", "v2", "v4", "v6", "v8");

// 求集合长度
redisTemplate.opsForSet().size("set1");

// 求差集
set = redisTemplate.opsForSet().difference("set1", "set2");

// 求并集
set = redisTemplate.opsForSet().intersect("set1", "set2");

// 判断是否集合中的元素
boolean exists = redisTemplate.opsForSet().isMember("set1", "v1");

// 获取集合所有元素
set = redisTemplate.opsForSet().members("set1");

// 从集合中随机弹出一个元素
String val = (String) redisTemplate.opsForSet().pop("set1");

// 随机获取一个集合的元素
val = (String) redisTemplate.opsForSet().randomMember("set1");
// 随机获取2个集合的元素
List list = redisTemplate.opsForSet().randomMembers("set1", 2L);

// 删除一个集合的元素,参数可以是多个
redisTemplate.opsForSet().remove("set1", "v1");

// 求两个集合的并集
redisTemplate.opsForSet().union("set1", "set2");

// 求两个集合的差集,并保存到集合diff_set中
redisTemplate.opsForSet().differenceAndStore("set1", "set2", "diff_set");
// 求两个集合的交集,并保存到集合inter_set中
redisTemplate.opsForSet().intersectAndStore("set1", "set2", "inter_set");
// 求两个集合的并集,并保存到集合union_set中
redisTemplate.opsForSet().unionAndStore("set1", "set2", "union_set");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: