作者:long--Journey | 来源:互联网 | 2023-09-17 13:03
看到很多帖子都是介绍redis客户端操作redis的命令,没有相关的springboot中redistemplate模板操作redis的命令,所以记录了一下redistemplate模板操作redis的常用命令,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别在于序列化方式不同,当然也可以自己定义序列化方式 redistemplate底层还是使用的jedis或者Lettuce两个客户端,https://blog.csdn.net/yifanSJ/article/details/79513179 ,本次记录的是 如何使用RedisTemplate 操作reids的5种基本数据类型
操作 String类型的数据:
1,将String类型存入到Redis当中:
public void redisSetString(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
2,从redis当中取出String类型的数据:
public Object redisGetString(String key) {
return redisTemplate.opsForValue().get(key);
}
3.设置reids key的过期时间(原来出现过设置过期时间不起作用,是因为先设置了过期时间 在去存入值到redis ):
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
使用RedisTemplate 操作List类型的数据:
1,将list类型存入到Redis当中:
public void redisSetList(String key) {
List<Integer> list = Arrays.asList(6,9,8,3);
for (Integer integer : list) {
redisTemplate.opsForList().leftPush(key, integer);
}
}
2,从redis中取出list数据:
public Object getList(String key) {
return redisTemplate.opsForList().range(key, 0, 10);
}
3.获取redis中list的长度:
public Long getListSize(String key) {
return redisTemplate.opsForList().size(key);
}
使用RedisTemplate 操作hash类型的数据:
1.将hash存放到redis当中:
public void setHash(String key) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("redis", "redis");
hashMap.put("mysql", "mysql");
for (Entry<String, String> keyValue : hashMap.entrySet()) {
redisTemplate.opsForHash().put(key, keyValue.getKey(), keyValue.getValue());
}
}
2.将hash从redis当中取出来 根据具体的key取出具体的值:
public Object getHash(String key, String key1) {
boolean isKey = redisTemplate.opsForHash().hasKey(key, key1);
return redisTemplate.opsForHash().get(key, key1);
}
3.将key中所有的值都取出来:
public Object getHash(String key) {
return redisTemplate.opsForHash().entries(key);
}
4.根据具体的key移除具体的值:
public void removeKey(String key, String key1) {
redisTemplate.opsForHash().delete(key, key1);
}
5.移除key值 则key里面的所有值都被移除:
public void removeStringKey(String key) {
redisTemplate.delete(key);
}
使用RedisTemplate 操作set类型的数据:
1.set数据存入redis中
public void setSet(String key) {
Set<Object> set = new HashSet<>();
set.add("setKey");
set.add("tesetKey");
for (Object object : set) {
redisTemplate.opsForSet().add(key, object);
}
}
2.从redis当中将set数据取出来:
public Object getSet(String key) {
return redisTemplate.opsForSet().members(key);
}
使用RedisTemplate 操作sortset类型的数据:
1.将sortSet存放到redis当中:
public void setZSet(String key) {
Set<Object> set = new HashSet<>();
set.add("setKey");
set.add("tesetKey");
int i = 0;
for (Object object : set) {
i++;
redisTemplate.opsForZSet().add(key, object, i);
}
}
2.将sortset从redis当中取出来的API有很多:
public Object getZSet(String key) {
Long size = redisTemplate.opsForZSet().size(key);
return redisTemplate.opsForZSet().rangeByScore(key, 0, size);
}
RedisTemplate操作5种基本类型数据,有一些共同的API 比如设置过期时间,和移除key的值,判断key是否存在
1设置过期时间
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
2.检测是否存在key:
public boolean checkKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
3:移除缓存 /**
* 移除key
* @param key
*/
public void removeKey(String key) {
redisTemplate.delete(key);
}
**总结:**以上就是常见的spring-boot-starter-data-redis中整合redis客户端后的redistemplate模板操作redis的命令