# RedisCache **Repository Path**: darkidiot/RedisCache ## Basic Information - **Project Name**: RedisCache - **Description**: RedisCache是基于Jedis的SDK。 ①强大的泛型支持,实现了任意java对象简单存\取 ②增强缓存接口:支持防穿透设计,以及本地缓存同步更新 ③提供多种分布式锁,分布式队列支持 ④个性化的redis源配置支持 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 177 - **Forks**: 82 - **Created**: 2016-10-14 - **Last Updated**: 2024-10-11 ## Categories & Tags **Categories**: cache-modules **Tags**: None ## README Redis Cache = Tips: - required: JDK1.5+ Overview - #### `RedisCache`是基于`Jedis`的SDK。 + ①强大的泛型支持,实现了任意java对象简单存\取
+ ②增强`缓存`接口:支持防穿透设计,以及本地缓存同步更新
+ ③提供多种`分布式锁`,`分布式队列`支持
+ ④个性化的redis源配置支持
# Usage: ### RedisCache `Normal Style` ```Java IRedisMap cache = Redis.use("redisSourceName"); User user = new User(); cache.put(1001,user); User redisUser = cache.get(1001); ``` `Fluent Style` ```Java IRedisMap cache = Redis.create().setServiceName("redisSourceName").build(); User user = new User(); cache.put(1001,user); User redisUser = cache.get(1001); ``` ### RedisLock `Normal Style` ```Java Lock lock = RedisLock.useSimpleRedisLock("simpleLock", "redisSourceName"); try { lock.lock(); lock.isLocking(); } finally { lock.unlock(); } ``` `Fluent Style` ```Java Lock lock = RedisLock.create().setService("redisSourceName").setLockName("simpleLock").useSimpleRedisLock(); try { lock.lock(); lock.isLocking(); } finally { lock.unlock(); } ``` ### RedisQueue `Normal Style` ```Java Queue queue = RedisQueue.useSimpleFifoQueue("simpleQueue","redisSourceName"); queue.enqueue(task1,task2,task3); Task task = queue.dequeue(); ``` `Fluent Style` ```Java Queue queue = RedisQueue.create().setService("redisSourceName").setQueueName("simpleQueue").useSimpleFifoQueue(); queue.enqueue(task1,task2,task3); Task task = queue.dequeue(); ``` # Configuration ## pattern I @for connection@ >>> service.names=redisSourceName,redisSourceName1,... ### Stand-Alone >>> redisSourceName.ip = 127.0.0.1
>>> redisSourceName.port = 6379
>>> redisSourceName.password=password
#### Simplified Way >>> redisSourceName.ip-port-password = 127.0.0.1:6379?password ### Sentinel >>> redisSourceName1.is.cluster = true
>>> redisSourceName1.sentinel.master.name = masterName
>>> redisSourceName1.sentinel.hosts = 127.0.0.1:6379;127.0.0.1:6389;127.0.0.1:6379;127.0.0.1:6399
>>> redisSourceName1.password = password
## pattern II @for basic@ >>> redisSourceName.open.local.cache = true
>>> redisSourceName[.read].timeoutInMillis = 10000
>>> redisSourceName[.write].timeoutInMillis = 10000
>>> redisSourceName[.read].maxTotal = 8
>>> redisSourceName[.write].maxTotal = 8
>>> redisSourceName[.read].maxIdle = 20
>>> redisSourceName[.write].maxIdle = 20
>>> redisSourceName[.read].maxWait = 2000
>>> redisSourceName[.write].maxWait = 2000
>>> redisSourceName[.read].testOnBorrow = true
>>> redisSourceName[.write].testOnBorrow = true
>>> redisSourceName[.read].testOnReturn = false
>>> redisSourceName[.write].testOnReturn = false
# Dependencies: redis.clients jedis org.slf4j slf4j-log4j12 commons-logging commons-logging org.slf4j slf4j-api com.google.guava guava com.google.code.gson gson