CentOS 7和SpringBoot下的Redis配置
一、Linux
1.redis.conf文件
(1)修改daemonize 改为 daemonize yes
(2)修改protected-mode yes 改为 protected-mode no
(3)注释掉 #bin 127.0.0.1
2.设置开机自启动
在redis安装目录中找到/utils/redis_init_script,这是redis的启动文件
cd /usr/local/redis-6.2.6/utils/redis_init_script
拷贝到/etc/init.d目录下。init.d文件夹是CentOS系统启动时自己要扫描的文件夹,所以将redis的文件夹放在这个目录下
cd /etc/init.d
cp /usr/local/redis-6.2.6/utils/redis_init_script redis
修改拷贝过来的文件:
(1)添加“chkconfig:2345 80 90”。
(2)修改EXEC、CLIEXEC、CONF的地址,将其改为redis的安装地址。
设置开机自启动
chkconfig --add redisd #添加到开机自启动
chkconfig redisd on
Redis服务控制命令
service redis stop
service redis start
ps aux | grep redis-server #查看redis是否开启
中文乱码处理
redis-cli --raw
二、Springboot
1.config文件
@Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); setRedisTemplate(template); template.afterPropertiesSet(); return template; } private void setRedisTemplate(RedisTemplate<String, Object> template) { // Json序列化配置 Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); // 解决jackson2无法反序列化LocalDateTime的问题 objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); objectMapper.registerModule(new JavaTimeModule()); objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); // String 的序列化 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); // 设置值(value)的序列化采用FastJsonRedisSerializer。 // 设置键(key)的序列化采用StringRedisSerializer。 template.afterPropertiesSet(); } }
2.配置文件
# 连接的数据库(默认为0) spring.redis.database=0 # redis服务ip spring.redis.host=192.168.1.1 # redis端口号 spring.redis.port=6379 # redis密码 spring.redis.password=123456 # 连接池最大连接数,默认8(使用负值表示没有限制) spring.redis.pool.max-active=8 # 连接池最大阻塞等待时间(使用负值表示没有限制) spring.redis.pool.max-wait=-1 # 连接池中的最大空闲连接,默认8 spring.redis.pool.max-idle=8 # 连接池中的最小空闲连接,默认0 spring.redis.pool.min-idle=0 # 连接超时时间(毫秒) spring.redis.timeout=2000