自用RedisConfig的配置,更改key为string和value json的序列化,避免set乱的key

发布于:2024-05-21 ⋅ 阅读:(109) ⋅ 点赞:(0)

自用RedisConfig的配置,更改key为string和value json的序列化,避免set乱的key,使用StringRedisTemplate也可以解决,保证了redis set的值是正确的

@Configuration
public class RedisConfig {
    //更改key为string和value json的序列化,避免乱码
    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(factory);

        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
        return  redisTemplate;
    }
}

与其对应的controller

package com.yase.build.controller;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class RedisController {
    //引入redis进行操作,因为实现了序列化,会导致key之前增加很多其他的东西,使用StringRedisTemplate
    @Resource
    private RedisTemplate redisTemplate;
//    @Resource
//    private StringRedisTemplate stringRedisTemplate;
    //获取值
    @GetMapping("/{key}")
    public Object get(@PathVariable String key){
        Object o = redisTemplate.opsForValue().get(key);
        return o;
    }
    @GetMapping("/{key}/{value}")
    public Object set(@PathVariable String key,@PathVariable String value){
        redisTemplate.opsForValue().set(key,value);
        return "ok";
    }

}


网站公告

今日签到

点亮在社区的每一天
去签到