知乎专栏 |
SetOperations<String,String> ops = redisTemplate.opsForSet();
Redis的Set是无序集合并且集合成员是唯一的,这就意味着集合中不能出现重复的数据。
stringRedisTemplate.opsForSet().add("test", "1","2","3"); //向指定key中存放set集合 stringRedisTemplate.opsForSet().isMember("test", "1") //根据key查看集合中是否存在指定数据 stringRedisTemplate.opsForSet().members("test"); //根据key获取set集合
//添加 一个 set 集合 SetOperations<String, Object> set = redisTemplate.opsForSet(); set.add("Member", "neo"); set.add("Member", "36"); set.add("Member", "178cm"); //输出 set 集合 System.out.println(set.members("Member"));
package cn.netkiller.api.restful; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import common.pojo.ResponseRestful; @RestController @RequestMapping("/news") public class NewsRestController { @Autowired private RedisTemplate<String, String> redisTemplate; @RequestMapping(value = "/flash/{count}") public ResponseRestful flash(@PathVariable("count") long count) { if(count == 0L) { count=10L; } Set<String> news = this.redisTemplate.opsForZSet().reverseRange("news:flash", 0, count); if (news == null) { return new ResponseRestful(false, 10, "没有查询到结果", news); } return new ResponseRestful(true, 0, "返回数据: " + news.size() + " 条", news); } public void addRecentUser(long userId, String name) { String key = RedisKeyGenerator.genRecentBrowsingPositionsKey(String.valueOf(userId)); // 获取已缓存的最近浏览的职位 ZSetOperations<String, String> zSetOperations = redisTempalte.opsForZSet(); //zset内部是按分数来排序的,这里用当前时间做分数 zSetOperations.add(key, name, System.currentTimeMillis()); zSetOperations.removeRange(key, 0, -6); } }
System.out.println("Random member: " + redisTemplate.opsForSet().randomMember("setTest"));
System.out.println("Random member: " + redisTemplate.opsForSet().randomMembers("setTest",5)); // 结果 Random member: [ccc, ddd, ddd, ddd, aaa]
System.out.println("Random members: " + redisTemplate.opsForSet().distinctRandomMembers("setTest",5)); //结果 Random members: [aaa, bbb, ddd, ccc]
redisTemplate.opsForSet().move("key1","aaa","key2"); System.out.println(redisTemplate.opsForSet().members("key1")); System.out.println(redisTemplate.opsForSet().members("key2"));
String[] arrays = new String[]{"Java","PHP"}; System.out.println(redisTemplate.opsForSet().remove("setTest",arrays));
System.out.println(redisTemplate.opsForSet().members("key")); System.out.println(redisTemplate.opsForSet().members("otherKey")); System.out.println(redisTemplate.opsForSet().intersect("key","otherKey"));
List<String> library2 = new ArrayList<String>(); library2.add("Linux"); library2.add("FreeBSD"); System.out.println(redisTemplate.opsForSet().intersect("library1",library2));
System.out.println(redisTemplate.opsForSet().intersectAndStore("key","otherKey","destKey"));
List<String> otherKey = new ArrayList<String>(); otherKey.add("《Netkiller Java 手札》"); otherKey.add("《Netkiller Spring Cloud 手札》"); System.out.println(redisTemplate.opsForSet().intersectAndStore("key",otherKey,"destKey"));
System.out.println(redisTemplate.opsForSet().union("setTest1","setTest2")); List<String> otherKey = new ArrayList<String>(); otherKey.add("《Netkiller Java 手札》"); otherKey.add("《Netkiller Spring Cloud 手札》"); System.out.println(redisTemplate.opsForSet().union("setTest",otherKey));
System.out.println(redisTemplate.opsForSet().unionAndStore("key","otherKey","destKey")); System.out.println(redisTemplate.opsForSet().unionAndStore("key",otherKey,"destKey"));
System.out.println(redisTemplate.opsForSet().difference("key","otherKey")); List<String> otherKey = new ArrayList<String>(); otherKey.add("setTest2"); otherKey.add("setTest3"); System.out.println(redisTemplate.opsForSet().difference("key",otherKey));
System.out.println(redisTemplate.opsForSet().differenceAndStore("key","otherKey","destKey"));