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

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]:求并集

[外链图片转存失败(img-GgOf8HbX-1562217928364)(E:/image/8.jpg)]


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");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值