SpringBoot快速整合Redis

如何快速实现在SpringBoot中,Redis的引入和测试?

  • 快速实现Redis的引入,主要做到以下几点:(2023/08/07早)
    • 导入相关依赖坐标

    • 作相关yaml配置

    • 作测试

    • 项目引入

  • 导入依赖坐标:
   <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.6.4</version>
        </dependency>
  • 写配置:

# redis 配置

redis: port: 6379

host: localhost

database: 0

  • 作测试:
@SpringBootTest
@Slf4j
class UserServiceImplTest {
    @Resource
    private RedisTemplate redisTemplate;
    @Resource
    private StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
​
    @Test
    void loginTest() {
​
        String redisKey = "pic_memories:user:login:session_key";
​
​
        stringRedisTemplate.opsForValue().set("pic", "memory");
        
        stringRedisTemplate.opsForValue().set(redisKey, "memory", 20, TimeUnit.HOURS);
        redisTemplate.opsForValue().set(redisKey + "2", "memory2");
    }
}
  • 这里注意:
  • RedisTemplate 底层的序列化方式,会导致存入的序列化后的value值成为乱码
  • StringRedisTemplate 继承了 RedisTemplate 有效解决了这个问题,但只能存放<String,String>
  • 综上,我们在使用Redis缓存技术时,可以自己自定义(封装一个)RedisTemplate
  • 自定义 RedisTemplate<String, Object> (config/RedisTemplateConfig)
@Configuration
public class RedisTemplateConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        // 1.创建RedisTemplate对象
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        // 2.设置连接工厂
        redisTemplate.setConnectionFactory(connectionFactory);
        // 3.设置Key的序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());
        // 4.创建JSON序列化工具
        GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
        // 5.设置value的序列化
        redisTemplate.setValueSerializer(jsonRedisSerializer);
        return redisTemplate;
    }
}
  • 解决 RedisTemplate 存入的序列化后的value值成为乱码的问题(2023/08/07早)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值