English | 简体中文
Supported JDK: 1.8 ... 21
Supported Redisson: 3.15.5 ... 3.27.0
Supported Redis: 3.0 ... 7.2
- Based on redisson package, retain all the powerful features of redisson
- Support for multiple data source configuration and real-time updates for redis
- Support "read-only", "write-only", "read-write" and "skip" state switching for redis data sources
- Excellent expandability and compatibility to meet all your needs
<dependency>
<groupId>org.codeba</groupId>
<artifactId>redis-keeper-core</artifactId>
<version>2024.0.0</version>
</dependency>
<dependency>
<groupId>org.codeba</groupId>
<artifactId>redis-keeper-support</artifactId>
<version>2024.0.0</version>
</dependency>
implementation group: 'org.codeba', name: 'redis-keeper-core', version: '2024.0.0'
implementation group: 'org.codeba', name: 'redis-keeper-support', version: '2024.0.0'
libraryDependencies += "org.codeba" % "redis-keeper-core" % "2024.0.0"
libraryDependencies += "org.codeba" % "redis-keeper-support" % "2024.0.0"
// 1. Create config object
Config config = new Config();
config.useSingleServer().setAddress("redis://localhost:6379").setPassword(yourPass);
// 2. Create datasource
DefaultCacheDatasource datasource = new DefaultCacheDatasource();
Map<String, CacheTemplate> dsMap = datasource.initialize(new HashMap<String, CacheKeeperConfig>() {{
put("ds1", new CacheKeeperConfig(config));
}});
Map<String, List<CacheTemplate>> dssMap = datasource.initializeMulti(new HashMap<String, List<CacheKeeperConfig>>() {{
put("ds2", Collections.singletonList(new CacheKeeperConfig(config)));
}});
// 3. Create datasource provider
CacheTemplateProvider<CacheTemplate> provider = new CacheTemplateProvider<>(dsMap, dssMap);
// 4. Get redis template
Optional<CacheTemplate> templateOptional = provider.getTemplate("ds1");
final CacheTemplate cacheTemplate = templateOptional.get();
cacheTemplate.set("foo", "bar");
// or get the read and write state of the cacheTemplate
Optional<CacheTemplate> templateOptionalRW = provider.getTemplate("ds1", CacheDatasourceStatus.RW);
// or get multiple cacheTemplates
Collection<CacheTemplate> cacheTemplates = provider.getTemplates("ds2");
// or load balanced polling to get cacheTemplate from multiple data sources
Optional<CacheTemplate> polledTemplate = provider.pollTemplate("ds2");
// or randomize cacheTemplate from multiple data sources
Optional<CacheTemplate> randomedTemplate = provider.randomTemplate("ds2");