玩转springboot之springboot集成redis乱码问题

springboot集成redis乱码问题

在使用redis操作字符串时发现会变成乱码,这是因为RedisTemplate默认是使用的是JdkSerializationRedisSerializer序列化方式,这里可以使用StringRedisTemplate来进行操作,StringRedisTemplate中默认使用的是StringRedisSerializer

也可以对RedisTemplate进行配置,设置其序列化方式

@Configuration
public class RedisConfig {

    // 配置redisTemplate
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(factory);
        // 设置key的序列化
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        // value的序列化
        Jackson2JsonRedisSerializer jsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        redisTemplate.setValueSerializer(jsonRedisSerializer);

        return redisTemplate;
    }
}

https://zhhll.icu/2022/框架/springboot/集成/1.springboot集成redis乱码问题/

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当多个线程频繁地使用Redis时,使用连接池可以提高应用程序的性能。下面是使用连接池集成Redis的步骤: 1. 在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.10.0</version> </dependency> ``` 2. 创建Redis连接池配置类。以下是一个示例: ```java @Configuration public class RedisPoolConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.password}") private String password; @Value("${spring.redis.timeout}") private int timeout; @Value("${spring.redis.maxIdle}") private int maxIdle; @Value("${spring.redis.maxTotal}") private int maxTotal; @Value("${spring.redis.maxWaitMillis}") private long maxWaitMillis; @Bean public JedisPool jedisPool() { JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxIdle(maxIdle); poolConfig.setMaxTotal(maxTotal); poolConfig.setMaxWaitMillis(maxWaitMillis); JedisPool jedisPool = new JedisPool(poolConfig, host, port, timeout, password); return jedisPool; } } ``` 在上面的代码中,我们使用JedisPoolConfig来配置我们的连接池,并创建一个JedisPool bean。您可以根据实际情况调整连接池的最大空闲连接数,最大连接数和最长等待时间。 3. 在您的服务类或控制器类中使用Redis连接池。您可以使用@Autowired注解注入JedisPool bean,然后使用它来获取Jedis实例并执行Redis操作。以下是一个示例: ```java @Autowired private JedisPool jedisPool; public void setValue(String key, String value) { try (Jedis jedis = jedisPool.getResource()) { jedis.set(key, value); } } public String getValue(String key) { try (Jedis jedis = jedisPool.getResource()) { return jedis.get(key); } } ``` 在上面的代码中,我们使用了try-with-resources语句来确保在使用完Jedis实例后关闭连接。这可以确保连接池中的连接得到正确释放。 这就是使用连接池集成Redis的步骤。希望这可以帮助您提高您的应用程序性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾光师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值