fengzhihao / redisson

Redisson - distributed and scalable Java objects (Bloom filter, BitSet, Set, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, ReadWriteLock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog, Redis pipelining) on top of Redis server. Java Redis client.

Home Page:http://redisson.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Redisson - distributed and scalable Java objects powered by Redis. Advanced Java Redis client

Maven Central

Use familiar Java data structures with power of Redis.

Based on high-performance async and lock-free Java Redis client and Netty 4 framework.
Redis 2.8+ and JDK 1.6+ compatible.

Read wiki for more Redisson usage details.
Redisson releases history.

Licensed under the Apache License 2.0.

Welcome to support chat - Join the chat at https://gitter.im/mrniko/redisson

Features

  • AWS ElastiCache servers mode:
    1. automatic new master server discovery
    2. automatic new slave servers discovery
    3. read data using slave servers, write data using master server
  • Cluster servers mode:
    1. automatic master and slave discovery
    2. automatic new master server discovery
    3. automatic new slave servers discovery
    4. automatic slots change discovery
    5. read data using slave servers, write data using master server
  • Sentinel servers mode:
    1. automatic master and slave servers discovery
    2. automatic new master server discovery
    3. automatic new slave servers discovery
    4. automatic slave servers offline/online discovery
    5. automatic sentinel servers discovery
    6. read data using slave servers, write data using master server
  • Master with Slave servers mode: read data using slave servers, write data using master server
  • Single server mode: read and write data using single server
  • Lua scripting
  • Distributed implementation of java.util.BitSet
  • Distributed implementation of java.util.List
  • Distributed implementation of java.util.Set with TTL support for each entry
  • Distributed implementation of java.util.SortedSet
  • Distributed implementation of java.util.Queue
  • Distributed implementation of java.util.concurrent.BlockingQueue
  • Distributed implementation of java.util.Deque
  • Distributed implementation of java.util.concurrent.BlockingDeque
  • Distributed implementation of java.util.Map with TTL support for each entry
  • Distributed implementation of java.util.concurrent.ConcurrentMap with TTL support for each entry
  • Distributed implementation of reentrant java.util.concurrent.locks.Lock with TTL support
  • Distributed implementation of reentrant java.util.concurrent.locks.ReadWriteLock with TTL support
  • Distributed alternative to the java.util.concurrent.atomic.AtomicLong
  • Distributed alternative to the java.util.concurrent.CountDownLatch
  • Distributed alternative to the java.util.concurrent.Semaphore
  • Distributed publish/subscribe messaging via org.redisson.core.RTopic
  • Distributed HyperLogLog via org.redisson.core.RHyperLogLog
  • Asynchronous interface for each object
  • Thread-safe implementation
  • All commands executes in an atomic way
  • Supports Reactive Streams
  • Supports Redis pipelining (command batches)
  • Supports Android platform
  • Supports auto-reconnect
  • Supports failed to send command auto-retry
  • Supports OSGi
  • Supports many popular codecs (Jackson JSON, CBOR, MsgPack, Kryo, FST, LZ4, Snappy and JDK Serialization)
  • With over 250 unit tests

Projects using Redisson

Setronica: setronica.com
Monits: monits.com
Brookhaven National Laboratory: bnl.gov
Netflix Dyno client: [dyno] (https://github.com/Netflix/dyno)
武林Q传: nbrpg.com
Ocous: ocous.com
Invaluable: invaluable.com

Latest version changelog

####09-Jan-2015 - version 2.2.5 released

Feature - new object added RBloomFilter
Feature - new object added RAtomicDouble
Feature - tryAdd, tryAddAsync, addAll and addAllAsync methods added to RScoredSortedSet
Feature - RKeys.count and RKeys.countAsync methods added
Feature - RedissonClient.saveBuckets method added
Feature - trySet, trySetAsync, compareAndSet and getAndSet methods added to RBucket
Feature - fastPutIfAbsent and fastPutIfAbsentAsync methods added to RMap
Improvement - RMap.putIfAbsent optimization
Improvement - RBitSet index range extended to Integer.MAX_VALUE*2
Improvement - RAtomicLong.getAndAdd optimization
Fixed - infinity loop during RMap iteration
Fixed - wrong timeout value used during RBatch execution
Fixed - connection handling when isReadFromSlaves = false
Fixed - RMap.addAndGetAsync key encoding
Fixed - RBatch errors handling
Fixed - RBlockingQueue.pollLastAndOfferFirstToAsync does not block properly

Maven

Include the following to your dependency list:

<dependency>
   <groupId>org.redisson</groupId>
   <artifactId>redisson</artifactId>
   <version>2.2.5</version>
</dependency>

Gradle

compile 'org.redisson:redisson:2.2.5'

Supported by

YourKit is kindly supporting this open source project with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.

About

Redisson - distributed and scalable Java objects (Bloom filter, BitSet, Set, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, ReadWriteLock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog, Redis pipelining) on top of Redis server. Java Redis client.

http://redisson.org

License:Apache License 2.0


Languages

Language:Java 100.0%