You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
redisson/README.md

161 lines
12 KiB
Markdown

6 years ago
Redisson: Redis Java client and In-Memory Data Grid
9 years ago
====
6 years ago
[Quick start](https://github.com/redisson/redisson#quick-start) | [Documentation](https://github.com/redisson/redisson/wiki) | [Javadocs](http://www.javadoc.io/doc/org.redisson/redisson/3.10.3) | [Changelog](https://github.com/redisson/redisson/blob/master/CHANGELOG.md) | [Code examples](https://github.com/redisson/redisson-examples) | [FAQs](https://github.com/redisson/redisson/wiki/16.-FAQ) | [Report an issue](https://github.com/redisson/redisson/issues/new) | **[Redisson PRO](https://redisson.pro)**
9 years ago
9 years ago
Based on high-performance async and lock-free Java Redis client and [Netty](http://netty.io) framework.
6 years ago
JDK version compatibility: 1.8 - 11, Android
9 years ago
11 years ago
Features
================================
6 years ago
* Replicated Redis servers mode (also supports [AWS ElastiCache](http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Replication.html) and [Azure Redis Cache](https://azure.microsoft.com/en-us/services/cache/)):
8 years ago
1. automatic master server change discovery
6 years ago
* Clustered Redis servers mode (also supports [AWS ElastiCache Cluster](http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Clusters.html) and [Azure Redis Cache](https://azure.microsoft.com/en-us/services/cache/)):
8 years ago
1. automatic master and slave servers discovery
8 years ago
2. automatic status and topology update
3. automatic slots change discovery
6 years ago
* Sentinel Redis servers mode:
8 years ago
1. automatic master, slave and sentinel servers discovery
2. automatic status and topology update
6 years ago
* Master with Slave Redis servers mode
* Single Redis server mode
10 years ago
* Thread-safe implementation
8 years ago
* [Reactive Streams](https://github.com/redisson/redisson/wiki/3.-operations-execution#32-reactive-way) API
6 years ago
* [RxJava2](https://github.com/redisson/redisson/wiki/3.-operations-execution#32-reactive-way) API
8 years ago
* [Asynchronous](https://github.com/redisson/redisson/wiki/3.-operations-execution#31-async-way) API
* Asynchronous connection pool
9 years ago
* Lua scripting
6 years ago
* [Distributed Java objects](https://github.com/redisson/redisson/wiki/6.-Distributed-objects)
8 years ago
Object holder, Binary stream holder, Geospatial holder, BitSet, AtomicLong, AtomicDouble, PublishSubscribe,
Bloom filter, HyperLogLog
6 years ago
* [Distributed Java collections](https://github.com/redisson/redisson/wiki/7.-Distributed-collections)
Map, Multimap, Set, List, SortedSet, ScoredSortedSet, LexSortedSet, Queue, Deque, Blocking Queue, Bounded Blocking Queue, Blocking Deque, Delayed Queue, Priority Queue, Priority Deque
6 years ago
* [Distributed Java locks and synchronizers](https://github.com/redisson/redisson/wiki/8.-Distributed-locks-and-synchronizers)
8 years ago
Lock, FairLock, MultiLock, RedLock, ReadWriteLock, Semaphore, PermitExpirableSemaphore, CountDownLatch
8 years ago
* [Distributed services](https://github.com/redisson/redisson/wiki/9.-distributed-services)
8 years ago
Remote service, Live Object service, Executor service, Scheduler service, MapReduce service
* [Spring Framework](https://github.com/redisson/redisson/wiki/14.-Integration%20with%20frameworks#141-spring-framework)
* [Spring Cache](https://github.com/redisson/redisson/wiki/14.-Integration%20with%20frameworks/#142-spring-cache) implementation
7 years ago
* [Spring Transaction API](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#147-spring-transaction-manager) implementation
7 years ago
* [Spring Data Redis](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#148-spring-data-redis) integration
* [Spring Boot Starter](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#149-spring-boot-starter) implementation
* [Hibernate Cache](https://github.com/redisson/redisson/wiki/14.-Integration%20with%20frameworks/#143-hibernate-cache) implementation
7 years ago
* [Transactions API](https://github.com/redisson/redisson/wiki/10.-Additional-features#104-transactions)
* [XA Transaction API](https://github.com/redisson/redisson/wiki/10.-additional-features/#105-xa-transactions) implementation
* [JCache API (JSR-107)](https://github.com/redisson/redisson/wiki/14.-Integration%20with%20frameworks/#144-jcache-api-jsr-107-implementation) implementation
* [Tomcat Session Manager](https://github.com/redisson/redisson/wiki/14.-Integration%20with%20frameworks#145-tomcat-redis-session-manager) implementation
* [Spring Session](https://github.com/redisson/redisson/wiki/14.-Integration%20with%20frameworks/#146-spring-session) implementation
8 years ago
* [Redis pipelining](https://github.com/redisson/redisson/wiki/10.-additional-features#102-execution-batches-of-commands) (command batches)
9 years ago
* Supports Android platform
8 years ago
* Supports auto-reconnection
9 years ago
* Supports failed to send command auto-retry
11 years ago
* Supports OSGi
8 years ago
* Supports SSL
8 years ago
* Supports many popular codecs ([Jackson JSON](https://github.com/FasterXML/jackson), [Avro](http://avro.apache.org/), [Smile](http://wiki.fasterxml.com/SmileFormatSpec), [CBOR](http://cbor.io/), [MsgPack](http://msgpack.org/), [Kryo](https://github.com/EsotericSoftware/kryo), [Amazon Ion](https://amzn.github.io/ion-docs/), [FST](https://github.com/RuedigerMoeller/fast-serialization), [LZ4](https://github.com/jpountz/lz4-java), [Snappy](https://github.com/xerial/snappy-java) and JDK Serialization)
7 years ago
* With over 1800 unit tests
11 years ago
8 years ago
Used by
10 years ago
================================
7 years ago
[![Siemens](https://redisson.org/assets/logos/client29.png "Siemens")](https://www.siemens.com)    
[![BMW GROUP](https://redisson.org/assets/logos/client27.png "BMW GROUP")](https://www.bmwgroup.com)    
7 years ago
[![AIG](https://redisson.org/assets/logos/client24.png "AIG")](https://www.aig.com/)    
7 years ago
[![S&P Global](https://redisson.org/assets/logos/client20.png "S&P Global")](https://www.spglobal.com/)    
8 years ago
[![SAP](https://redisson.org/assets/logos/client12.png "SAP")](http://www.sap.com/)    
7 years ago
[![EA](https://redisson.org/assets/logos/client1.png "EA")](http://ea.com/)    
[![Adobe](https://redisson.org/assets/logos/client23.png "Adobe")](https://www.adobe.com/)
7 years ago
7 years ago
[![Jeppesen](https://redisson.org/assets/logos/client25.png "Jeppesen")](https://www.jeppesen.com/)    
[![BROOKHAVEN](https://redisson.org/assets/logos/client6.png "Brookhaven National Laboratory")](http://bnl.gov/)    
[![New Relic Synthetics](https://redisson.org/assets/logos/client3.png "New Relic Synthetics")](http://newrelic.com/synthetics)    
7 years ago
[![Netflix](https://redisson.org/assets/logos/client10.png "Netflix")](https://netflix.com/)    
7 years ago
[![Personal Capital](https://redisson.org/assets/logos/client26.png "Personal Capital")](https://www.personalcapital.com)
[![Singtel](https://redisson.org/assets/logos/client5.png "New Relic Synthetics")](http://singtel.com/)    
7 years ago
[![Baidu](https://redisson.org/assets/logos/client2.png "Baidu")](http://baidu.com/)    
8 years ago
[![Infor](https://redisson.org/assets/logos/client4.png "Infor")](http://www.infor.com/)    
7 years ago
[![Crimson Hexagon](https://redisson.org/assets/logos/client7.png "Crimson Hexagon")](https://www.crimsonhexagon.com/)    
[![ContaAzul](https://redisson.org/assets/logos/client18.png "ContaAzul")](https://contaazul.com/)   
[![马蜂窝](https://redisson.org/assets/logos/client33.png "马蜂窝")](http://www.mafengwo.cn/)
7 years ago
7 years ago
[![Datorama](https://redisson.org/assets/logos/client8.png "Datorama")](https://datorama.com/)   
7 years ago
[![Ticketmaster](https://redisson.org/assets/logos/client14.png "Ticketmaster")](http://www.ticketmaster.com/)   
7 years ago
[![NAB](https://redisson.org/assets/logos/client11.png "NAB")](https://www.nab.com.au/)   
[![Juniper](https://redisson.org/assets/logos/client31.png "Juniper")](https://www.juniper.net/)   
[![火币](https://redisson.org/assets/logos/client32.png "火币")](https://www.huobi.com/)   
7 years ago
7 years ago
[![Alibaba](https://redisson.org/assets/logos/client19.png "Alibaba")](http://www.alibaba-inc.com)   
7 years ago
[![Flipkart](https://redisson.org/assets/logos/client21.png "Flipkart")](https://www.flipkart.com/)   
7 years ago
[![Invaluable](https://redisson.org/assets/logos/client13.png "Invaluable")](http://www.invaluable.com/)   
7 years ago
[![BBK](https://redisson.org/assets/logos/client22.png "BBK")](http://www.gdbbk.com/)
[![SULAKE](https://redisson.org/assets/logos/client17.png "SULAKE")](http://www.sulake.com/)
7 years ago
6 years ago
<sub>Logos, product names and all other trademarks displayed on this page belong to their respective holders and used for identification purposes only. Use of these trademarks, names and brands does not imply endorsement.</sub>
10 years ago
8 years ago
Success stories
================================
7 years ago
## [Moving from Hazelcast to Redis / Datorama](https://engineering.datorama.com/moving-from-hazelcast-to-redis-b90a0769d1cb)
## [Distributed Locking with Redis (Migration from Hazelcast) / ContaAzul](https://carlosbecker.com/posts/distributed-locks-redis/)
6 years ago
## [Migrating from Coherence to Redis](https://www.youtube.com/watch?v=JF5R2ucKTEg)
7 years ago
8 years ago
9 years ago
Quick start
9 years ago
===============================
11 years ago
9 years ago
#### Maven
8 years ago
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
6 years ago
<version>3.10.5</version>
8 years ago
</dependency>
11 years ago
8 years ago
9 years ago
#### Gradle
6 years ago
compile 'org.redisson:redisson:3.10.5'
10 years ago
9 years ago
#### Java
```java
// 1. Create config object
Config = ...
// 2. Create Redisson instance
RedissonClient redisson = Redisson.create(config);
6 years ago
// 3. Get Redis based object or service you need
9 years ago
RMap<MyKey, MyValue> map = redisson.getMap("myMap");
9 years ago
RLock lock = redisson.getLock("myLock");
9 years ago
9 years ago
RExecutorService executor = redisson.getExecutorService("myExecutorService");
9 years ago
6 years ago
// over 30 different Redis based objects and services ...
9 years ago
```
9 years ago
6 years ago
Consider __[Redisson PRO](https://redisson.pro)__ version for advanced features and support by SLA.
6 years ago
7 years ago
Downloads
===============================
6 years ago
[Redisson 3.10.5](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson&v=3.10.5&e=jar),
[Redisson node 3.10.5](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.10.5&e=jar)
7 years ago
FAQs
===============================
[Q: I saw a RedisTimeOutException, What does it mean? What shall I do? Can Redisson Team fix it?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-i-saw-a-redistimeoutexception-what-does-it-mean-what-shall-i-do-can-redisson-team-fix-it)
[Q: I saw a com.fasterxml.jackson.databind.JsonMappingException during deserialization process, can you fix it?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-i-saw-a-comfasterxmljacksondatabindjsonmappingexception-during-deserialization-process-can-you-fix-it)
[Q: There were too many quotes appeared in the redis-cli console output, how do I fix it?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-there-were-too-many-quotes-appeared-in-the-redis-cli-console-output-how-do-i-fix-it)
[Q: When do I need to shut down a Redisson instance, at the end of each request or the end of the life of a thread?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-when-do-i-need-to-shut-down-a-redisson-instance-at-the-end-of-each-request-or-the-end-of-the-life-of-a-thread)
6 years ago
[Q: In MapCache/SetCache/SpringCache/JCache, I have set an expiry time to an entry, why is it still in Redis when it should be disappeared?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-in-mapcachesetcachespringcachejcache-i-have-set-an-expiry-time-to-an-entry-why-is-it-still-in-redis-when-it-should-be-disappeared)
[Q: How can I perform Pipelining/Transaction through Redisson?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-how-can-i-perform-pipeliningtransaction-through-redisson)
[Q: Is Redisson thread safe? Can I share an instance of it between different threads?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-is-redisson-thread-safe-can-i-share-an-instance-of-it-between-different-threads)
[Q: Can I use different encoder/decoders for different tasks?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-can-i-use-different-encoderdecoders-for-different-tasks)