java - 如何使用带有二级索引键的 Guava Cache?

标签 java database caching relational-database guava

每当我们希望从多个键检索数据时,我们都会选择依赖数据库。我有一个类(class)购物车,如图所示:

@Data
public class Cart {

    private String cartId;

    private String restaurantId;

    private String userId;

    @NotNull
    private String deviceId;

    private Map<String, Integer> items;
}

我想使用 userId 或 deviceId 检索我的购物车。在 RDBMS 中,方法是声明 deviceId(主键)和 userId(唯一键),这足以让我使用其中任何一个有效地检索购物车。

是否有一种干净的方法可以使用 Guava 或其他缓存来实现此目的?通过干净,我希望它是缓存中提供的一流构造,这样我就不必在它周围编写包装器来使用。

最佳答案

使用 Guava 执行此操作的最简洁方法是使用两个缓存,一个通过 deviceId 查找,一个通过 userId 查找。

我不知道您是否认为这足够干净,但我认为这是最好的类型安全解决方案。

关于java - 如何使用带有二级索引键的 Guava Cache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75888240/

相关文章:

hibernate - 打开Hibernate查询缓存后,默认情况下是否缓存 native SQL查询?

javascript - 防止html页面浏览缓存

java - 更改 Java 临时 Internet 文件存储位置

java - 如何在数据删除时自动刷新ListView

java - 如果不存在,则使用干净的 Java 7 方法创建文件

javascript - 对 Spring Boot 端点的 Ajax 请求无法读取 HTTP MSG

javascript - 通过 Symfony2 Controller 将记录从数据库中提取到 javascript

database - 我知道大局,但不能把它放在适当的位置

java - 使用 baksmali 进行解码 - 缺少 java 类 android 实现?

php - Woocommerce:按产品标签和产品类别查询总销售额?