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

 

posted @ 2021-12-10 16:48  幻月hah  阅读(105)  评论(0编辑  收藏  举报