SpringBoot 使用 RedisTemplate 时,存入

2021-01-13  本文已影响0人  KwokRoot

原因: RedisTemplate 默认使用:JdkSerializationRedisSerializer 序列化。

解决方案:

@Autowired
RedisTemplate redisTemplate;

修改为:

@Autowired
StringRedisTemplate stringRedisTemplate;

拓展:

1.SpringBoot 项目使用 Redis:

    ①`pom.xml` 添加依赖:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

    ②配置`application.properties` :

        #Redis服务器地址
        spring.redis.host=127.0.0.1
        #Redis服务器连接端口
        spring.redis.port=6379
        #Redis服务器连接密码(默认为空)
        spring.redis.password=123456
        spring.redis.database=0

        #连接池最大连接数(使用负值表示没有限制)
        spring.redis.jedis.pool.max-active=8
        #连接池中的最大空闲连接
        spring.redis.jedis.pool.max-idle=8
        #连接池中的最小空闲连接
        spring.redis.jedis.pool.min-idle=3
        #连接池最大阻塞等待时间(使用负值表示没有限制)
        spring.redis.jedis.pool.max-wait=-1ms
        #连接超时时间(毫秒)
        spring.redis.timeout=30000

    ③注入,使用:
        
        @Autowired
        StringRedisTemplate stringRedisTemplate;

        stringRedisTemplate.opsForValue().set("key", "value");
        String value = stringRedisTemplate.opsForValue().get("key");
        System.out.println(value);

        stringRedisTemplate.opsForHash().entries("hash")

2.SpringBoot 项目使用 Redis,切换 Database 方法:

    LettuceConnectionFactory connectionFactory = (LettuceConnectionFactory) stringRedisTemplate.getConnectionFactory();
    if (connectionFactory != null) {
        connectionFactory.setDatabase(16);
        stringRedisTemplate.setConnectionFactory(connectionFactory);
        //connectionFactory.resetConnection(); //很多资料中执行 resetConnection() 方法,不起作用
        connectionFactory.afterPropertiesSet(); //使用 afterPropertiesSet() 能正常切换
    }

注:SpringBoot 版本:2.2.8.RELEASE。

上一篇下一篇

猜你喜欢

热点阅读