Redissonの使い方
1623 ワード
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 Queue)、ブロッキング・フェア・キュー(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)の提供
ぶんさんロック
バッチ
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 Queue)、ブロッキング・フェア・キュー(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();