RedisTemplate类中的常用方法粗解(简单明了,预计5分钟看完)
在阅读项目代码过程中发现引用RedisTemplate 的方法操作redis时,都会有一些特定的ops ,对此好奇就查资料的情况下有了本博客。
操作之前付一张我们项目中的用到的地方的图
另外本文中的语言用到的是Java,附上试验用到的redisTemplete依赖
<!--redis-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.5.2</version>
</dependency>
查阅资料后总结如下:
1. 基本操作
opsForValue()
作用:获取 ValueOperations 对象,用于操作字符串类型的数据。(这里的方法只是一级方法,我们项目中还采用到了redisTemplate.opsForValue().setIfAbsent()用于实现和RedisService中的redisService.setNx(key, value)同样的效果)
示例:
ValueOperations<String, String> valueOps = redisTemplate.opsForValue();valueOps.set("key", "value");
opsForHash()
作用:获取 HashOperations 对象,用于操作哈希类型的数据。
示例:
HashOperations<String, String, String> hashOps = redisTemplate.opsForHash();hashOps.put("hashKey", "field", "value");
opsForList()
作用:获取 ListOperations 对象,用于操作列表类型的数据。
示例:
ListOperations<String, String> listOps = redisTemplate.opsForList();listOps.rightPush("listKey", "value");
opsForSet()
作用:获取 SetOperations 对象,用于操作集合类型的数据。
示例:
SetOperations<String, String> setOps = redisTemplate.opsForSet();setOps.add("setKey", "value");
opsForZSet()
作用:获取 ZSetOperations 对象,用于操作有序集合类型的数据。
示例:
ZSetOperations<String, String> zSetOps = redisTemplate.opsForZSet();zSetOps.add("zSetKey", "value", 1.0);
ps:看到这里才明白,大量的ops实际上是因为operations这个单词的缩写…
除了一些基础的操作外还有一些对键的操作,对事务的操作,请继续往下看
2. 键操作
delete(K key)
作用:删除指定的键。
示例:
redisTemplate.delete("key");
expire(K key, long timeout, TimeUnit unit)
作用:为指定的键设置过期时间。(这里我们项目中使用到了,用于设置特定数据的过期时间)
示例:
redisTemplate.expire("key", 60, TimeUnit.SECONDS);
hasKey(K key)
作用:检查指定的键是否存在。
示例:
boolean exists = redisTemplate.hasKey("key");
事务操作
multi()
作用:开始一个事务。
示例:
redisTemplate.multi();
exec()
作用:提交事务。
示例:
List<Object> results = redisTemplate.exec();
discard()
作用:放弃事务。
示例:
redisTemplate.discard();
4.其他操作
boundValueOps(K key)
作用:获取一个绑定到指定键的 BoundValueOperations 对象,用于操作字符串类型的数据。
示例:
BoundValueOperations<String, String> boundValueOps = redisTemplate.boundValueOps("key");
boundValueOps.set("value");
boundHashOps(K key)
作用:获取一个绑定到指定键的 BoundHashOperations 对象,用于操作哈希类型的数据。
示例:
BoundHashOperations<String, String, String> boundHashOps = redisTemplate.boundHashOps("hashKey");
boundHashOps.put("field", "value");
boundListOps(K key)
作用:获取一个绑定到指定键的 BoundListOperations 对象,用于操作列表类型的数据。
示例:
BoundListOperations<String, String> boundListOps = redisTemplate.boundListOps("listKey");
boundListOps.rightPush("value");
boundSetOps(K key)
作用:获取一个绑定到指定键的 BoundSetOperations 对象,用于操作集合类型的数据。
示例:
BoundSetOperations<String, String> boundSetOps = redisTemplate.boundSetOps("setKey");
boundSetOps.add("value");
boundZSetOps(K key)
作用:获取一个绑定到指定键的 BoundZSetOperations 对象,用于操作有序集合类型的数据。
示例:
BoundZSetOperations<String, String> boundZSetOps = redisTemplate.boundZSetOps("zSetKey");boundZSetOps.add("value", 1.0);
总体来讲,RedisTemplate 类提供了丰富的操作方法,涵盖了 Redis 的各种数据类型和操作。很多细节性质的方法还是需要通过不断的去实践才能熟练运用。