Redis在springboot中的使用教程
依赖如下:
org.springframework.boot spring-boot-starter-data-redis
配置文件如下:
spring: redis: open:true#是否开启redis缓存true开启false关闭 database:0 host:47.104.208.124 port:6378 password:lf.1228#密码(默认为空) timeout:6000#连接超时时长(毫秒) pool: max-active:1000#连接池最大连接数(使用负值表示没有限制) max-wait:-1#连接池最大阻塞等待时间(使用负值表示没有限制) max-idle:10#连接池中的最大空闲连接 min-idle:5#连接池中的最小空闲连接
RedisConfig类:
@Configuration
publicclassRedisConfig{
@Autowired
privateRedisConnectionFactoryfactory;
@Bean
publicRedisTemplateredisTemplate(){
RedisTemplateredisTemplate=newRedisTemplate<>();
redisTemplate.setKeySerializer(newStringRedisSerializer());
redisTemplate.setHashKeySerializer(newStringRedisSerializer());
redisTemplate.setHashValueSerializer(newStringRedisSerializer());
redisTemplate.setValueSerializer(newStringRedisSerializer());
redisTemplate.setConnectionFactory(factory);
returnredisTemplate;
}
@Bean
publicHashOperationshashOperations(RedisTemplateredisTemplate){
returnredisTemplate.opsForHash();
}
@Bean
publicValueOperationsvalueOperations(RedisTemplateredisTemplate){
returnredisTemplate.opsForValue();
}
@Bean
publicListOperationslistOperations(RedisTemplateredisTemplate){
returnredisTemplate.opsForList();
}
@Bean
publicSetOperationssetOperations(RedisTemplateredisTemplate){
returnredisTemplate.opsForSet();
}
@Bean
publicZSetOperationszSetOperations(RedisTemplateredisTemplate){
returnredisTemplate.opsForZSet();
}
}
RedisUtils如下:
@Component
publicclassRedisUtils{
@Autowired
privateRedisTemplateredisTemplate;
@Autowired
privateValueOperationsvalueOperations;
@Autowired
privateHashOperationshashOperations;
@Autowired
privateListOperationslistOperations;
@Autowired
privateSetOperationssetOperations;
@Autowired
privateZSetOperationszSetOperations;
/**默认过期时长,单位:秒*/
publicfinalstaticlongDEFAULT_EXPIRE=60*60*24;
/**不设置过期时长*/
publicfinalstaticlongNOT_EXPIRE=-1;
privatefinalstaticGsongson=newGson();
publicvoidset(Stringkey,Objectvalue,longexpire){
valueOperations.set(key,toJson(value));
if(expire!=NOT_EXPIRE){
redisTemplate.expire(key,expire,TimeUnit.SECONDS);
}
}
publicvoidset(Stringkey,Objectvalue){
set(key,value,DEFAULT_EXPIRE);
}
publicTget(Stringkey,Classclazz,longexpire){
Stringvalue=valueOperations.get(key);
if(expire!=NOT_EXPIRE){
redisTemplate.expire(key,expire,TimeUnit.SECONDS);
}
returnvalue==null?null:fromJson(value,clazz);
}
publicTget(Stringkey,Classclazz){
returnget(key,clazz,NOT_EXPIRE);
}
publicStringget(Stringkey,longexpire){
Stringvalue=valueOperations.get(key);
if(expire!=NOT_EXPIRE){
redisTemplate.expire(key,expire,TimeUnit.SECONDS);
}
returnvalue;
}
publicStringget(Stringkey){
returnget(key,NOT_EXPIRE);
}
publicvoiddelete(Stringkey){
redisTemplate.delete(key);
}
/**
*Object转成JSON数据
*/
privateStringtoJson(Objectobject){
if(objectinstanceofInteger||objectinstanceofLong||objectinstanceofFloat||
objectinstanceofDouble||objectinstanceofBoolean||objectinstanceofString){
returnString.valueOf(object);
}
returngson.toJson(object);
}
/**
*JSON数据,转成Object
*/
privateTfromJson(Stringjson,Classclazz){
returngson.fromJson(json,clazz);
}
}
springboot如何封装redis:
RedisTemplate
所在包: org.springframework.data.redis.core
作用:redis模板,redis事务,序列化支持,操作redis方法
JedisConnectionFactory
所在包:org.springframework.data.redis.connection.jedis
作用:redis连接工厂类,创建redis连接池等
RedisAutoConfiguration
所在包:org.springframework.boot.autoconfigure.data.redis
作用:将redis配置文件相关信息注入工厂类
RedisProperties
所在包:org.springframework.boot.autoconfigure.data.redis
作用:redis连接基础类通过@ConfigurationProperties注解将配置信息注入属性
总结
以上所述是小编给大家介绍的Redis在springboot中的使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。