这里不详细介绍Redis的安装过程,相信大家也很容易搜到的。Redis安装可以参考 https://www.cnblogs.com/limit1/p/9045183.html
(1)配置 application.properties或者是application.yml,这两个都是springBoot默认的配置文件(在resources目录下)
application.yml配置如下:
server:
port: 8080
spring:
redis:
# Redis数据库索引(默认为0)
database: 0
# redis服务器地址
host: 192.168.23.131
# redis服务器连接端口
port: 6379
# redis服务器连接密码(默认为空)
password:
# 连接超时时间(毫秒)
timeout: 5000
pool:
# 连接池最大连接数(负值表示没有限制)
max-active: 200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: 10000
# 连接池最大空闲连接
max-idle: 10
# 连接池最小空闲连接
min-idle: 0
(2)编写配置类,代码如下
/** * @Author qiaohan * @Date 2020/5/20 14:25 * @Description redis配置类 */ @Configuration public class RedisConfiguration { /** * 创建 RedisTemplate Bean * Bean需要在@Configuration注解下进行创建,产生这个Bean对象的方法Spring只会调用一次,随后放入Spring IOC 容器中 * @param factory RedisConnectionFactory。Spring会将入参根据类型注入,若存在多个根据名称匹配,找不到会报错 * @return RedisTemplate<String, Object>。存在于IOC容器中的单例 Bean */ @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(factory); Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); serializer.setObjectMapper(om); StringRedisSerializer srSerializer = new StringRedisSerializer(); // key采用String的序列化方式 redisTemplate.setKeySerializer(srSerializer); // hash的key也采用String的序列化方式 redisTemplate.setHashKeySerializer(srSerializer); // value序列化方式采用jackson redisTemplate.setValueSerializer(serializer); // hash的value序列化方式采用jackson redisTemplate.setHashValueSerializer(serializer); redisTemplate.afterPropertiesSet(); return redisTemplate; } }
说明:
从代码中可以看到,ObjectMapper.setVisibility()方法已经废弃了,一般废弃的方法都会有相应的替代方法,查看源码可以发现给出了替代的方法,这里采用的是
om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,
ObjectMapper.DefaultTyping.NON_FINAL,
JsonTypeInfo.As.PROPERTY);
一般情况下,Redis安装好后并不能被其它服务直接访问,springBoot连接redis会报错:
org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.
RedisConnectionException: Unable to connect to 192.168.23.131:6379
验证:通过cmd telnet命令测试端口是否畅通
需要进行相应的配置
(1)关闭redis保护模式
进入redis安装目录,编辑redis配置文件
输入命令:vim redis.conf
将 bind 127.0.0.1 注释掉,protected-mode修改为no
(2)到Linux终端输入命令:
firewall-cmd --query-port=6379/tcp
如果返回no,那么证明6379端口确实没有开启
输入 firewall-cmd --add-port=6379/tcp,将6379端口开启,返回success
然后再执行上一条命令,返回yes,证明端口已经成功开启
原文:https://www.cnblogs.com/qiaohan9090/p/12927096.html