spring boot整合redis实现RedisTemplate三分钟快速入门
引入依赖
org.springframework.boot spring-boot-starter-data-redis
RedisTemplate五种数据结构的操作
- redisTemplate.opsForValue();//操作字符串
- redisTemplate.opsForHash();//操作hash
- redisTemplate.opsForList();//操作list
- redisTemplate.opsForSet();//操作set
- redisTemplate.opsForZSet();//操作有序zset
RedisTemplate方法讲解
判断key是否存在
/**
*判断key是否存在
*/
@GetMapping("haskey")
publicbooleanhasKey(Stringkey){
returnredisTemplate.hasKey(key);
}
获取指定的key的失效时间
/**
*指定key的失效时间
*/
@GetMapping("expire")
publicvoidexpire(Stringkey,longtime){
//参数一:key
//参数二:睡眠时间
//参数三:睡眠时间单位TimeUnit.DAYS天TimeUnit.HOURS小时。。。
redisTemplate.expire(key,time,TimeUnit.MINUTES);
}
根据key获取过期时间
/**
*根据key获取过期时间
*/
@GetMapping("getexpire")
publiclonggetExpire(Stringkey){
Longexpire=redisTemplate.getExpire(key);
returnexpire;
}
根据key删除reids中缓存数据
/**
*根据key删除reids中缓存数据
*/
@GetMapping("delredisbykey")
publicvoiddelete(Stringkey){
redisTemplate.delete(key);
}
保存和读取String
/**
*保存和读取String
*/
@GetMapping("stringredisdemo")
publicStringstringredisdemo(){
//设置过期时间为1分钟
redisTemplate.opsForValue().set("key1","value1",1,TimeUnit.MINUTES);
redisTemplate.opsForValue().set("key2","value2");
redisTemplate.opsForValue().set("key3","value3");
//读取redis数据
Stringresult1=redisTemplate.opsForValue().get("key1").toString();
Stringresult2=redisTemplate.opsForValue().get("key2").toString();
Stringresult3=redisTemplate.opsForValue().get("key3").toString();
System.out.println("缓存结果为:result:"+result1+""+result2+""+result3);
return"缓存结果为:result:"+result1+""+result2+""+result3;
}
保存和读取list
/**
*保存和读取list
*/
@GetMapping("listredisdemo")
publicStringlistredisdemo(){
Listlist1=newArrayList<>();
list1.add("a1");
list1.add("a2");
list1.add("a3");
Listlist2=newArrayList<>();
list2.add("b1");
list2.add("b2");
list2.add("b3");
redisTemplate.opsForList().leftPush("listkey1",list1);
redisTemplate.opsForList().rightPush("listkey2",list2);
ListresultList1=(List)redisTemplate.opsForList().leftPop("listkey1");
ListresultList2=(List)redisTemplate.opsForList().rightPop("listkey2");
System.out.println("resultList1:"+resultList1);
System.out.println("resultList2:"+resultList2);
return"成功";
}
Hash结构,保存和读取map
/**
*Hash结构,保存和读取map
*/
@GetMapping("mapredisdemo")
publicStringmapredisdemo(){
Mapmap=newHashMap<>();
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);
MapresultMap=redisTemplate.opsForHash().entries("map1");
ListreslutMapList=redisTemplate.opsForHash().values("map1");
SetresultMapSet=redisTemplate.opsForHash().keys("map1");
Stringvalue=(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")
publicStringgetredisdemo(){
SetOperationsset=redisTemplate.opsForSet();
set.add("key1","value1");
set.add("key1","value2");
set.add("key1","value3");
SetresultSet=redisTemplate.opsForSet().members("key1");
System.out.println("resultSet:"+resultSet);
return"resultSet:"+resultSet;
}
保存和读取zset
/**
*保存和读取zset
*/
@GetMapping("zsetredisdemo")
publicStringzsetredisdemo(){
ZSetOperations.TypedTuple
完整示例代码
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.data.redis.core.DefaultTypedTuple;
importorg.springframework.data.redis.core.RedisTemplate;
importorg.springframework.data.redis.core.SetOperations;
importorg.springframework.data.redis.core.ZSetOperations;
importorg.springframework.web.bind.annotation.GetMapping;
importorg.springframework.web.bind.annotation.RestController;
importjava.util.*;
importjava.util.concurrent.TimeUnit;
@RestController
publicclassReidsDemo{
@Autowired
RedisTemplateredisTemplate;
/**
*指定key的失效时间
*/
@GetMapping("expire")
publicvoidexpire(Stringkey,longtime){
//参数一:key
//参数二:睡眠时间
//参数三:睡眠时间单位TimeUnit.DAYS天TimeUnit.HOURS小时。。。
redisTemplate.expire(key,time,TimeUnit.MINUTES);
}
/**
*根据key获取过期时间
*/
@GetMapping("getexpire")
publiclonggetExpire(Stringkey){
Longexpire=redisTemplate.getExpire(key);
returnexpire;
}
/**
*判断key是否存在
*/
@GetMapping("haskey")
publicbooleanhasKey(Stringkey){
returnredisTemplate.hasKey(key);
}
/**
*根据key删除reids中缓存数据
*/
@GetMapping("delredisbykey")
publicvoiddelete(Stringkey){
redisTemplate.delete(key);
}
/**
*保存和读取String
*/
@GetMapping("stringredisdemo")
publicStringstringredisdemo(){
//设置过期时间为1分钟
redisTemplate.opsForValue().set("key1","value1",1,TimeUnit.MINUTES);
redisTemplate.opsForValue().set("key2","value2");
redisTemplate.opsForValue().set("key3","value3");
//读取redis数据
Stringresult1=redisTemplate.opsForValue().get("key1").toString();
Stringresult2=redisTemplate.opsForValue().get("key2").toString();
Stringresult3=redisTemplate.opsForValue().get("key3").toString();
System.out.println("缓存结果为:result:"+result1+""+result2+""+result3);
return"缓存结果为:result:"+result1+""+result2+""+result3;
}
/**
*保存和读取list
*/
@GetMapping("listredisdemo")
publicStringlistredisdemo(){
Listlist1=newArrayList<>();
list1.add("a1");
list1.add("a2");
list1.add("a3");
Listlist2=newArrayList<>();
list2.add("b1");
list2.add("b2");
list2.add("b3");
redisTemplate.opsForList().leftPush("listkey1",list1);
redisTemplate.opsForList().rightPush("listkey2",list2);
ListresultList1=(List)redisTemplate.opsForList().leftPop("listkey1");
ListresultList2=(List)redisTemplate.opsForList().rightPop("listkey2");
System.out.println("resultList1:"+resultList1);
System.out.println("resultList2:"+resultList2);
return"成功";
}
/**
*Hash结构,保存和读取map
*/
@GetMapping("mapredisdemo")
publicStringmapredisdemo(){
Mapmap=newHashMap<>();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");
redisTemplate.opsForHash().putAll("map1",map);
MapresultMap=redisTemplate.opsForHash().entries("map1");
ListreslutMapList=redisTemplate.opsForHash().values("map1");
SetresultMapSet=redisTemplate.opsForHash().keys("map1");
Stringvalue=(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")
publicStringgetredisdemo(){
SetOperationsset=redisTemplate.opsForSet();
set.add("key1","value1");
set.add("key1","value2");
set.add("key1","value3");
SetresultSet=redisTemplate.opsForSet().members("key1");
System.out.println("resultSet:"+resultSet);
return"resultSet:"+resultSet;
}
/**
*保存和读取zset
*/
@GetMapping("zsetredisdemo")
publicStringzsetredisdemo(){
ZSetOperations.TypedTupleobjectTypedTuple1=newDefaultTypedTuple<>("zset-5",9.6);
ZSetOperations.TypedTupleobjectTypedTuple2=newDefaultTypedTuple<>("zset-6",9.9);
Set>tuples=newHashSet<>();
tuples.add(objectTypedTuple1);
tuples.add(objectTypedTuple2);
System.out.println(redisTemplate.opsForZSet().add("zset1",tuples));
System.out.println(redisTemplate.opsForZSet().range("zset1",0,-1));
return"成功";
}
}
序列化
直接粘贴在项目中即可
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.data.redis.connection.RedisConnectionFactory;
importorg.springframework.data.redis.core.RedisTemplate;
importorg.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
importorg.springframework.data.redis.serializer.RedisSerializer;
importorg.springframework.data.redis.serializer.StringRedisSerializer;
/*
*序列化
*/
@Configuration
publicclassMyRedisConfig{
@Bean(name="redisTemplate")
publicRedisTemplateredisTemplate(RedisConnectionFactoryredisConnectionFactory){
RedisTemplateredisTemplate=newRedisTemplate<>();
//参照StringRedisTemplate内部实现指定序列化器
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(keySerializer());
redisTemplate.setHashKeySerializer(keySerializer());
redisTemplate.setValueSerializer(valueSerializer());
redisTemplate.setHashValueSerializer(valueSerializer());
returnredisTemplate;
}
privateRedisSerializerkeySerializer(){
returnnewStringRedisSerializer();
}
//使用Jackson序列化器
privateRedisSerializervalueSerializer(){
returnnewGenericJackson2JsonRedisSerializer();
}
}
到此这篇关于springboot整合redis实现RedisTemplate三分钟快速入门的文章就介绍到这了,更多相关springbootRedisTemplate入门内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。