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