Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每个缓存的Redis大小限制_Java_Spring_Redis - Fatal编程技术网

Java 每个缓存的Redis大小限制

Java 每个缓存的Redis大小限制,java,spring,redis,Java,Spring,Redis,Redis可以用作Spring(启动)应用程序中的缓存存储引擎。但是,它只允许设置总的maxmemory大小限制有没有办法通过元素数量或存储在该(子)缓存中的字节数量来限制单个再缓存的大小? 有没有提供这种功能的包装器库?或者,是否有一个接口可以实现以轻松实现类似的功能?您应该编写自己的redis jar来维护这些限制,并为您的主项目提供一个接口。这将给您带来更大的灵活性是的,您可以实现同样的效果。我建议您为此使用Redisson客户端 @Configuration @EnableCaching

Redis可以用作Spring(启动)应用程序中的缓存存储引擎。但是,它只允许设置总的maxmemory大小限制有没有办法通过元素数量或存储在该(子)缓存中的字节数量来限制单个再缓存的大小?


有没有提供这种功能的包装器库?或者,是否有一个接口可以实现以轻松实现类似的功能?

您应该编写自己的redis jar来维护这些限制,并为您的主项目提供一个接口。这将给您带来更大的灵活性

是的,您可以实现同样的效果。我建议您为此使用Redisson客户端

@Configuration
@EnableCaching
public static class Application {

    @Bean(destroyMethod="shutdown")
    RedissonClient redisson() throws IOException {
        Config config = new Config();
        config.useClusterServers()
              .addNodeAddress("redis://127.0.0.1:7004", "redis://127.0.0.1:7001");
        return Redisson.create(config);
    }

    @Bean
    public CacheManager cacheManager(RedissonClient redissonClient) {
        Map<String, CacheConfig> config = new HashMap<String, CacheConfig>();

        // create "testMap" cache with ttl = 24 minutes and maxIdleTime = 12 minutes
        CacheConfig cacheConfig = new CacheConfig(24*60*1000, 12*60*1000);
        // 100 entries 
        cacheConfig.setMaxSize(100);
        config.put("testMap", cacheConfig);
 
        return new RedissonSpringCacheManager(redissonClient, config);
    }

}
@配置
@启用缓存
公共静态类应用程序{
@Bean(destromethod=“shutdown”)
RedissonClient redisson()引发IOException{
Config=new Config();
config.useClusterServers()
.addNodeAddress(“redis://127.0.0.1:7004", "redis://127.0.0.1:7001");
返回Redisson.create(config);
}
@豆子
公共缓存管理器缓存管理器(RedissonClient RedissonClient){
Map config=newhashmap();
//创建“testMap”缓存,ttl=24分钟,maxIdleTime=12分钟
CacheConfig CacheConfig=new CacheConfig(24*60*1000,12*60*1000);
//100条
cacheConfig.setMaxSize(100);
put(“testMap”,cacheConfig);
返回新的RedissonSpringCacheManager(redissonClient,配置);
}
}