比较Redis Template和Redis Repository

482 阅读1分钟
  1. 缓存抽象(@Cacheable 等注解),Spring 通过 aop 实现了缓存功能,底层不一定是 redis,也可能是 jvm 缓存,memcached等。
  2. redisRepository,类比 mysql 的 repository 操作,如 CrudRepository,帮我们实现了操作缓存的功能
  3. redisTemplate,类比 jdbcTemplate,提供更底层的原始命令,由开发自行实现一些功能,更灵活
  4. Spring的缓存抽象,是不论底层用何种实现方式,上层使用的方法都是基本一致的,可以是单机的缓存,也可以是Redis的,方便了缓存的使用。而Redis除了做缓存,也可以有其他的用途,比如在一些场景中代替RDBMS,这时用Redis的Repository,可以像使用其他Repository一样,保持了类似的使用习惯。
  5. 既然有了redisTemplate,什么情况下需要使用Redis Repository? 按ID存了一个数据到Redis里,但又希望能按别的维度来查询时,一种方式就是自己维护二级索引,而RedisRepository可以帮你做这个二级索引,根据自己需要来查询。
  6. 我们自己在产线使用时目前还是以Jedis为主,没有用Lettuce。Lettuce是线程安全的,而Redis又是单线程的,所以一般情况下,只是简单的get/set,多连接并不会有明显的性能提升。
  7. 微服务的时候,服务之间的调用,需要用到token鉴权——分布式session