zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    freopen stdout 真的更快?
    【评分】第二次作业——个人项目实战
    【评分】第二次作业-数独-第一次测试成绩
    姑娘你大胆地往前走——答大二学生XCL之八问
    第二次作业-数独-初步测试日志
    第二次作业——个人项目实战
    关于C#的随机数
    必须展示窗口才能截图怎么办,伪后台截图思路
    Winform 奇怪的 英文字体错乱显示问题
    wpf 解决 WPF SelectionChanged事件向上传递造成重复执行不想执行的函数的问题
  • 原文地址:https://www.cnblogs.com/shiblog/p/15672669.html
Copyright © 2011-2022 走看看