• 两者的关系是StringRedisTemplate继承RedisTemplate。

  • 两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。

  • SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。

    StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。

    RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。

Redis的String数据结构 (推荐使用StringRedisTemplate)

注意:如果使用RedisTemplate需要更改序列化方式

  

@Configuration
public class RedisConfig {

    @Autowired
    private RedisTemplate redisTemplate;

    @Bean
    public RedisTemplate<Object, Object> stringSerializerRedisTemplate() {

        RedisSerializer<String> stringSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(stringSerializer);
        redisTemplate.setHashKeySerializer(stringSerializer);

        FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
        redisTemplate.setValueSerializer(fastJsonRedisSerializer);
        redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);

        return redisTemplate;
    }
}

  

操作demo

public List<EmsAddr> getList() {

        //查询缓存
        List<EmsAddr> list= (List<EmsAddr>)redisTemplate.opsForValue().get("str_List");
        if(null == list) {
            //缓存为空,查询一遍数据库
            list = emsAddrMapper.getList();
            //把数据库查询出来数据,放入Redis中
            redisTemplate.opsForValue().set("str_List",list);
        }

        redisTemplate.opsForList().leftPushAll("list_list", list);
        System.out.println(redisTemplate.opsForList().size("list_list"));
        System.out.println(redisTemplate.opsForList().range("list_list",0,-1));
        return list;
    }

 

 

https://blog.csdn.net/chen15369337607/article/details/104058934

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-10
  • 2022-12-23
  • 2021-10-03
  • 2021-08-19
猜你喜欢
  • 2022-01-28
  • 2022-01-16
  • 2022-12-23
  • 2021-11-05
  • 2022-01-05
相关资源
相似解决方案