使用Spring和Redisson实现cache功能
先看redis的配置:
@Configuration
@EnableRedissonHttpSession
@EnableCaching
public class RedisConfig {
@Value("${redis.url}")
private String url;
@Autowired
private CKryoCodec codec;
@Bean(destroyMethod="shutdown")
RedissonClient client() {
Config config = new Config();
config.setCodec(codec).setKeepPubSubOrder(true);
config.useSingleServer()
.setAddress("redis://" + url)
.setConnectTimeout(100)
.setTimeout(200)
.setConnectionPoolSize(8)
.setConnectionMinimumIdleSize(5)
.setTcpNoDelay(true)
.setPingConnectionInterval(30000)
.setPingTimeout(100)
.setKeepAlive(true)
.setRetryInterval(50);
RedissonClient client = Redisson.create(config);
return client;
}
@Bean
CacheManager cacheManager(RedissonClient redissonClient) {
Map<String, CacheConfig> config = Maps.newHashMap();
// 创建一个名称为"testMap"的缓存,过期时间ttl为24分钟,同时最长空闲时maxIdleTime为12分钟。
config.put(CACHE_ENTERPRISE, new CacheConfig(24*60*60*1000, 12*60*1000));
return new RedissonSpringCacheManager(redissonClient, config);
}
}
Repository类:
@Repository
public class EnterpriseRepository extends BaseRepository<Enterprise> {
private SimpleJdbcInsert insert;
private static final String TABLE = "enterprise";
@Po