【问题标题】:How to store non persistent java object in redis cache java如何在redis缓存java中存储非持久java对象
【发布时间】:2021-04-22 15:48:54
【问题描述】:

我有EmployeeDto 作为Object,它没有与数据库同步。

我想将EmployeeDto 放入 Redis 缓存中。我已经通过一个示例,我可以看到数据库实体正在使用 Redis 缓存进行缓存,但是我们如何在 Redis 缓存中存储和检索非数据库实体?

@Getter
@Setter 
public class EmployeeDto {
    private long employeeId;
    private String requestId;
    private String timestamp;
    private String employeeName;
}

【问题讨论】:

  • 你能分享一下EmployeeDto类吗?
  • @GuyKorland 我已添加 EmployeeDto。
  • 所以你使用的是 Spring-Data-Redis?
  • @GuyKorland 是的,我们正在使用 Spring-Data-Redis。

标签: java spring-boot redis jedis redis-cache


【解决方案1】:

您在 Spring 缓存库中缺少 CacheManager 的概念。

CacheManager 允许您创建任何名称的缓存,对于您的用例,您可以创建一个名称为 default 的缓存,并且此缓存必须是您需要的 Redis。

您可以在任何 bean 中注入 CacheManager,一旦您拥有 cacheManager 对象,您就可以调用 getCache 方法来获取 Cache 对象,现在您需要在此缓存对象上调用适当的方法来存储/检索数据。

在这里查看很多用法

https://www.codota.com/code/java/classes/org.springframework.cache.CacheManager

【讨论】:

  • 但是CacheManager属于Spring,我想把数据存储在redis缓存中。
  • 您可以创建一个Cache,底层数据存储为Redis。在 Spring Boot 中,您需要设置 spring.cache.type=redis,这将使用 Redis 创建您的缓存。
  • @Autowired RedisTemplate redisTemplate; redisTemplate.opsForValue().set("KEY","Value"); redisTemplate.opsForValue().get("KEY");以上方式怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
相关资源
最近更新 更多