java - 如何用spring在redis的缓存中创建文件夹?

标签 java spring caching redis

我尝试在我的项目的 redis 缓存中创建文件夹。 我想要类似于 spring 自动处理 spring session 的东西。

enter image description here

我有很多“DisplayItem”条目,我想将它们存储在“displayitem”文件夹中。

这是我的代码:

@Cacheable(value = "displayItem", cacheManager = "longLifeCacheManager")
public DisplayItem getDisplayItem(String displayItemCode) {
    // Do a lot of things
}

@Cacheable(cacheManager = "mediumLifeCacheManager", value = "preferences:userPreferences", key = "#zenithName")
public UserPreferences getUserPreferencesByZenithName(String zenithName) {
    // Do something
}

如果我将值替换为“foldername:displayItem”,它会创建一个文件夹,但仅用于键(就像我在屏幕截图中为首选项所做的那样)。 我找不到如何将所有值存储在同一个文件夹中。

我该怎么做?

最佳答案

我终于找到了解决办法。 在 CacheManager 的配置中,我需要将 UserPrefix 设置为 True。

@Bean(name = "mediumLifeCacheManager")
public CacheManager mediumLifeCacheManager(RedisTemplate redisTemplate) {
    RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
    cacheManager.setDefaultExpiration(redisExpirationMedium);
    cacheManager.setUsePrefix(true);
    return cacheManager;
}

现在一切如我所愿。

enter image description here

关于java - 如何用spring在redis的缓存中创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42852290/

相关文章:

java - 在 Windows 上检测 Java 中的 SHIFT 键时出现问题

java - Payara 5.194 与 Ubuntu16 和 Java 8 失败,并从 JLine 抛出 UnsupportedOperationException

java - 防止 SQL 注入(inject) (Java)

MySQL - 具有一个变量更改的 SAME 查询花费的时间超过 10 倍

ruby-on-rails - 在 rails 中缓存 http 调用结果

class - 如何重写magento core-cache-model (Mage_Core_Model_Cache)

java - 如何在客户端 Socket 上等待 ServerSocket 连接

java - Tomcat Log4J 问题 - 找不到附加程序

spring - 如何将属性从Gradle传递到Spring Boot

java - 动态字段 thymeleaf 列表迭代