RedisTemplate - 常用集合之opsFor系列 - 简书

一、opsForValue 简单的Key-Value操作 1、set(K key, V value) 该方法是向Redis新增一个key-value,由方法参数可知k-v可以是泛型,也就是说我们k-v不一定要是传统的String-String,还可以是Object-Object。 redisTemplate.opsForValue().set("lcy",'lcy'); 2、get(Object key) 该方法就从Redis中取key对应的value // 沿用上面的代码 redisTemplate.opsForValue().get("lcy"); 3、set(K key, V value, long timeoutSeconds) 该方法在原有的set基础上增加了过期时间,即设定一个时间,过了这个时间,这对key-value就会被Redis删除 4、其他不常用的方法 其他不常用的方法可以参考:opsForValue使用说明 二、opsForList 针对List集合的相关操作。 1、leftPush(K key, V value) 向集合左边添加元素值 2、leftPushAll(K key, V …values) 向集合左边批量添加元素,参数可以是数组、多参数、集合 redisTemplate.opsForList().leftPush("list","a"); List list = new LinkedList(); redisTemplate.opsForList().leftPushAll("list",list); 3、leftPop(K key) 移除集合左边的第一个元素并返回这个元素 redisTemplate.opsForList().leftPush("list","a"); String str = redisTemplate.opsForList().leftPop("list"); 既然有左边的操作,那肯定也有右边的操作,即把上诉方法的left改成right即可。 4、其他不常用的方法 其他不常用的方法可以参考:opsForList使用说明 三、opsForHash 针对Hash类型的相关操作。 1、put(H key, HK hashKey, HV value) 这是新增一个Hash值,key为外层的Hash的key值,hashKey为内层Hash的key值,value为内层Hash的key对应的value。也就是说hashKey-value就是key的value。 redisTemplate.opsForHash().put("hashKey","hash1","hash1-value"); 2、get(H key, Object hashKey) 获取内层hashKey对应的value Object hashValue = redisTemplate.opsForHash().get("hashKey","hash1"); 3、values(H key) 获取外层Key的存储的所有hash,并将其封装在一个Map对象返回。 Map hashKey = redisTemplate.opsForHash().entries("hashKey"); 4、hasKey(H key, Object hashKey) 该方法是判断Key中是否存在hashKey这个键值对。 Boolean hasKey = redisTemplate.opsForHash().hasKey("hashKey", "hash1"); 5、keys(H key)、entries(H key) 前者获取所有key,后者获取所有key对应的value List hashKey1 = redisTemplate.opsForHash().values("hashKey"); System.out.println(hashKey1); 6、size(H key) 获取Hash的长度。 long hashLength = redisTemplate.opsForHash().size("hashKey"); 7、putAll(H key, Map<? extends HK,? extends HV> m) 以Map集合的形式添加键值对。 Map map = new HashMap(); map.put("lcy","lcy"); redisTemplate.opsForHash().putAll("hashKey",map); 8、其他不常用方法 其他不常用的方法可以参考:opsForHash的使用 四、opsForSet 针对Set类型的相关操作。 1、add(K key, V… values) 向key对应的value值中批量添加值,可以是集合、数组、多参数 2、members(K key) 获取key对应的value 3、size(K key) 获取key对应的值的长度。 4、isMember(K key, Object o) 检查给定的元素是否在Set变量中。 5、pop(K key) 弹出变量中的元素。 6、remove(K key, Object… values) 批量移除元素。可以是集合、数组、多参数 7、randomMember(K key) 随机获取变量中的一个元素。 8、randomMembers(K key, long count) 随机获取变量中的count个元素。 9、delete(H key, Object… hashKeys) 删除Key变量中的键值对,可以传入多个参数,删除多个键值对。可以是集合、数组、多参数 10、其他不常用的方法 其他不常用的方法可以参考:opsForSet的使用 五、opsForZSet 针对ZSet的相关操作。zSet也是一种集合,根据score分数进行从小到大排序 1、add(K key, V value, double score) 添加元素到变量中同时指定元素的分值。 2、range(K key, long start, long end) 获取变量指定区间的元素,从下标0开始。 3、score(K key, Object o) 获取元素的分值。 4、其他方法 其他的方法可以参考:opsForZSet的用法 六、所有的键值对都可以通过delete删除 redisTemplate.delete("hashKey");