app开发者平台在数字化时代的重要性与发展趋势解析
1104
2023-02-26
spring boot整合redis实现RedisTemplate三分钟快速入门
引入依赖
RedisTemplate五种数据结构的操作
redisTemplate.opsForValue(); //操作字符串
redisTemplate.opsForHash(); //操作hash
redisTemplate.opsForList(); //操作list
redisTemplate.opsForSet(); //操作set
redisTemplate.opsForZSet(); //操作有序zset
RedisTemplate方法讲解
判断key是否存在
/**
* 判断key是否存在
*/
@GetMapping("haskey")
public boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
获取指定的key的失效时间
/**
* 指定key的失效时间
*/
@GetMapping("expire")
public void expire(String key, long time) {
//参数一:key
//参数二:睡眠时间
//参数三:睡眠时间单位 TimeUnit.DAYS 天 TimeUnit.HOURS 小时 。。。
redisTemplate.expire(key, time, TimeUnit.MINUTES);
}
根据key获取过期时间
/**
* 根据key获取过期时间
*/
@GetMapping("getexpire")
public long getExpire(String key) {
Long expire = redisTemplate.getExpire(key);
return expire;
}
根据key删除reids中缓存数据
/**
* 根据key删除reids中缓存数据
*/
@GetMapping("delredisbykey")
public void delete(String key) {
redisTemplate.delete(key);
}
保存和读取String
/**
* 保存和读取String
*/
@GetMapping("stringredisdemo")
public String stringredisdemo() {
//设置过期时间为1分钟
redisTemplate.opsForValue().set("key1", "value1", 1, TimeUnit.MINUTES);
redisTemplate.opsForValue().set("key2", "value2");
redisTemplate.opsForValue().set("key3", "value3");
//读取redis数据
String result1 = redisTemplate.opsForValue().get("key1").toString();
String result2 = redisTemplate.opsForValue().get("key2").toString();
String result3 = redisTemplate.opsForValue().get("key3").toString();
System.out.println("缓存结果为:result:" + result1 + " " + result2 + " " + result3);
return "缓存结果为:result:" + result1 + " " + result2 + " " + result3;
}
保存和读取list
/**
* 保存和读取list
*/
@GetMapping("listredisdemo")
public String listredisdemo() {
List
list1.add("a1");
list1.add("a2");
list1.add("a3");
List
list2.add("b1");
list2.add("b2");
list2.add("b3");
redisTemplate.opsForList().leftPush("listkey1", list1);
redisTemplate.opsForList().rightPush("listkey2", list2);
List
List
System.out.println("resultList1:" + resultList1);
System.out.println("resultList2:" + resultList2);
return "成功";
}
Hash结构,保存和读取map
/**
* Hash结构,保存和读取map
*/
@GetMapping("mapredisdemo")
public String mapredisdemo() {
Map
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
map.put("key4", "value4");
map.put("key5", "value5");
redisTemplate.opsForHash().putAll("map1", map);
Map
List
Set
String value = (String) redisTemplate.opsForHash().get("map1", "key1");
System.out.println("value:" + value);
System.out.println("resultMapSet:" + resultMapSet);
System.out.println("resultMap:" + resultMap);
System.out.println("resulreslutMapListtMap:" + reslutMapList);
return "成功";
}
保存和读取Set
/**
* 保存和读取Set
*/
@GetMapping("setredisdemo")
public String getredisdemo() {
SetOperations
set.add("key1", "value1");
set.add("key1", "value2");
set.add("key1", "value3");
Set
System.out.println("resultSet:" + resultSet);
return "resultSet:" + resultSet;
}
保存和读取zset
/**
* 保存和读取zset
*/
@GetMapping("zsetredisdemo")
public String zsetredisdemo() {
ZSetOperations.TypedTuple
ZSetOperations.TypedTuple
Set
tuples.add(objectTypedTuple1);
tuples.add(objectTypedTuple2);
System.out.println(redisTemplate.opsForZSet().add("zset1", tuples));
System.out.println(redisTemplate.opsForZSet().range("zset1", 0, -1));
return "成功";
}
完整示例代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.DefaultTypedTuple;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.concurrent.TimeUnit;
@RestController
public class ReidsDemo {
@Autowired
RedisTemplate redisTemplate;
/**
* 指定key的失效时间
*/
@GetMapping("expire")
public void expire(String key, long time) {
//参数一:key
//参数二:睡眠时间
//参数三:睡眠时间单位 TimeUnit.DAYS 天 TimeUnit.HOURS 小时 。。。
redisTemplate.expire(key, time, TimeUnit.MINUTES);
}
/**
* 根据key获取过期时间
*/
@GetMapping("getexpire")
public long getExpire(String key) {
Long expire = redisTemplate.getExpire(key);
return expire;
}
/**
* 判断key是否存在
*/
@GetMapping("haskey")
public boolean hasKey(String key) {
return redisTemplate.hasKey(key);
}
/**
* 根据key删除reids中缓存数据
*/
@GetMapping("delredisbykey")
public void delete(String key) {
redisTemplate.delete(key);
}
/**
* 保存和读取String
*/
@GetMapping("stringredisdemo")
public String stringredisdemo() {
//设置过期时间为1分钟
redisTemplate.opsForValue().set("key1", "value1", 1, TimeUnit.MINUTES);
redisTemplate.opsForValue().set("key2", "value2");
redisTemplate.opsForValue().set("key3", "value3");
//读取redis数据
String result1 = redisTemplate.opsForValue().get("key1").toString();
String result2 = redisTemplate.opsForValue().get("key2").toString();
String result3 = redisTemplate.opsForValue().get("key3").toString();
System.out.println("缓存结果为:result:" + result1 + " " + result2 + " " + result3);
return "缓存结果为:result:" + result1 + " " + result2 + " " + result3;
}
/**
* 保存和读取list
*/
@GetMapping("listredisdemo")
public String listredisdemo() {
List
list1.add("a1");
list1.add("a2");
list1.add("a3");
List
list2.add("b1");
list2.add("b2");
list2.add("b3");
redisTemplate.opsForList().leftPush("listkey1", list1);
redisTemplate.opsForList().rightPush("listkey2", list2);
List
List
System.out.println("resultList1:" + resultList1);
System.out.println("resultList2:" + resultList2);
return "成功";
}
/**
* Hash结构,保存和读取map
*/
@GetMapping("mapredisdemo")
public String mapredisdemo() {
Map
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
redisTemplate.opsForHash().putAll("map1", map);
Map
List
Set
String value = (String) redisTemplate.opsForHash().get("map1", "key1");
System.out.println("value:" + value);
System.out.println("resultMapSet:" + resultMapSet);
System.out.println("resultMap:" + resultMap);
System.out.println("resulreslutMapListtMap:" + reslutMapList);
return "成功";
}
/**
* 保存和读取Set
*/
@GetMapping("setredisdemo")
public String getredisdemo() {
SetOperations
set.add("key1", "value1");
set.add("key1", "value2");
set.add("key1", "value3");
Set
System.out.println("resultSet:" + resultSet);
return "resultSet:" + resultSet;
}
/**
* 保存和读取zset
*/
@GetMapping("zsetredisdemo")
public String zsetredisdemo() {
ZSetOperations.TypedTuple
ZSetOperations.TypedTuple
Set
tuples.add(objectTypedTuple1);
tuples.add(objectTypedTuple2);
System.out.println(redisTemplate.opsForZSet().add("zset1", tuples));
System.out.println(redisTemplate.opsForZSet().range("zset1", 0, -1));
return "成功";
}
}
序列化
直接粘贴在项目中即可
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2jsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/*
*序列化
*/
@Configuration
public class MyRedisConfig {
@Bean(name = "redisTemplate")
public RedisTemplate
RedisTemplate
//参照StringRedisTemplate内部实现指定序列化器
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(keySerializer());
redisTemplate.setHashKeySerializer(keySerializer());
redisTemplate.setValueSerializer(valueSerializer());
redisTemplate.setHashValueSerializer(valueSerializer());
return redisTemplate;
}
private RedisSerializer
return new StringRedisSerializer();
}
//使用Jackson序列化器
private RedisSerializer
return new GenericJackson2JsonRedisSerializer();
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~