springboot2.5.0和redis整合配置详解

网友投稿 911 2023-01-14

springboot2.5.0和redis整合配置详解

springboot2.5.0和redis整合配置详解

基本概况

为什么使用缓存

缓存是在内存中存储的数据备份,当数据没有发生本质变化时

就可以直接从内存中查询数据,而不用去数据库查询(在磁盘中)

CPU读取内存的速度要比读取磁盘快,可以提高效率

Redis缓存

Remote Dictionnary Server(远程数据服务),是一款内存高速缓存数据库。

五种常用数据类型: String(字符串)、List(列表)、Set(集合)、Hash(散列)、ZSet(有序集合)

可持久化:一边运行,一边向硬盘备份一份,防止断电等偶然情况,导致内存中数据丢失

-Redis

链接: https://pan.baidu.com/s/1BMt4cIxjKTtyL3T0_iSC2w 提取码: rkne

1. pom添加依赖

org.springframework.boot

spring-boot-starter-data-redis

2. application.properties 配置文件

#===========Redis配置===========

# Redis数据库索引(默认为0)

spring.redis.database=0

# Redis服务器地址

spring.redis.host=127.0.0.1

# Redis服务器连接端口

spring.redis.port=6379

# Redis服务器连接密码

spring.redis.password=root

# 连接池最大连接数(使用负值表示没有限制)

spring.redis.pool.max-active=200

# 连接池最大阻塞等待时间(使用负值表示没有限制)

spring.redis.pool.max-wait=-1

# 连接池中的最大空闲连接

spring.redis.pool.max-idle=10

# 连接池中的最小空闲连接

spring.redis.pool.min-idle=0

# 连接超时时间(毫秒)

spring.redis.timeout=2000ms

spring.redis.jedis.pool.max-wait=-1ms

#===========Redis配置===========

3. RedisConfig.java 配置类

package org.fh.config;

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.Jackson2jsonRedisSerializer;

import org.springframework.data.redis.serializer.StringRedisSerializer;

import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;

import com.fasterxml.jackson.annotation.PropertyAccessor;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

/**

* 说明:Redis

* from:fhadmin.org

*/

@Configuration

public class RedisConfig {

@Bean

@SuppressWarnings("all")

public RedisTemplate redisTemplate(RedisConnectionFactory factory) {

RedisTemplate template = new RedisTemplate();

template.setConnectionFactory(factory);

Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

ObjectMapper om = new ObjectMapper();

om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance , ObjectMapper.DefaultTyping.NON_FINAL);

jackson2JsonRedisSerializer.setObjectMapper(om);

StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();

// key采用String的序列化方式

template.setKeySerializer(stringRedisSerializer);

// hash的key也采用String的序列化方式

template.setHashKeySerializer(stringRedisSerializer);

// value序列化方式采用jackson

template.setValueSerializer(jackson2JsonRedisSerializer);

// hash的value序列化方式采用jackson

template.setHashValueSerializer(jackson2JsonRedisSerializer);

template.afterPropertiesSet();

return template;

}

}

4. 调用redis

@Autowired

private RedisTemplate redisTemplate;

/**

* 普通缓存获取

* @param key 键

* @return 值

*/

public Object get(String key) {

return key == null ? null : redisTemplate.opsForValue().get(key);

}

/**

* 普通缓存放入

* @param key 键

* @param value 值

* @return true成功 false失败

*/

public boolean set(String key, Object value) {

try {

redihttp://sTemplate.opsForValue().set(key, value);

return true;

} catch (Exception e) {

//e.printStackTrace();

return false;

}

}

以上就是springboot2.5.0 整合 redis 配置详解的详细内容,更多关于springboot2.5.0 整合 redis 的资料请关注我们其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:金融小程序好不好干(小程序好做么)
下一篇:浅谈JVM中的JOL
相关文章

 发表评论

暂时没有评论,来抢沙发吧~