Redisson的用法

https://github.com/redisson/redisson

Redisson作爲一個分佈式緩存的一個解決方案,在redis的基礎上加入了提供分佈式對象


通用對象桶(Object Bucket)、二進制流(Binary Stream)、地理空間對象桶(Geospatial Bucket)、BitSet、原子整長形(AtomicLong)、原子雙精度浮點數(AtomicDouble)、話題(訂閱分發)、 布隆過濾器(Bloom Filter)和基數估計算法(HyperLogLog)

提供分佈式集合
映射(Map)、多值映射(Multimap)、集(Set)、列表(List)、有序集(SortedSet)、計分排序集(ScoredSortedSet)、字典排序集(LexSortedSet)、列隊(Queue)、雙端隊列(Deque)、阻塞隊列(Blocking Queue)、有界阻塞列隊(Bounded Blocking Queue)、 阻塞雙端列隊(Blocking Deque)、阻塞公平列隊(Blocking Fair Queue)、延遲列隊(Delayed Queue)、優先隊列(Priority Queue)和優先雙端隊列(Priority Deque)

提供分佈式鎖和同步器
可重入鎖(Reentrant Lock)、公平鎖(Fair Lock)、聯鎖(MultiLock)、 紅鎖(RedLock)、讀寫鎖(ReadWriteLock)、信號量(Semaphore)、可過期性信號量(PermitExpirableSemaphore)和閉鎖(CountDownLatch)

提供分佈式服務
分佈式遠程服務(Remote Service, RPC)、分佈式實時對象(Live Object)服務、分佈式執行服務(Executor Service)、分佈式調度任務服務(Scheduler Service)和分佈式映射歸納服務(MapReduce)

分佈式對象的用法

RAtomicLong rAtomicLong = redisson.getAtomicLong("key");
rAtomicLong.set(1223L);
rAtomicLong.expire(d,TimeUnit.DAYS);

 

redissonClient.getBucket("key").set(object, 40, TimeUnit.MINUTES);

分佈式鎖

RLock rLock = redisson.getLock("key");
try {
 rLock.lock();
} catch (Exception e) {
} finally {
    rLock.unlock();
}

批量

RBatch batch = redisson.createBatch();
batch.getBucket("key").setAsync(object);
batch.atomic().retryAttempts(3).execute();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章