From b85c447fc9433794b78378d33be0b62057baa70a Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Fri, 4 Oct 2024 11:33:52 +0300 Subject: [PATCH] readme updated --- README.md | 216 +++++++++++------------------------------------------- 1 file changed, 43 insertions(+), 173 deletions(-) diff --git a/README.md b/README.md index 44a71691f..3e3dd18c3 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [Quick start](https://redisson.org/docs/getting-started/) | [Documentation](https://redisson.org/docs/) | [Changelog](https://github.com/redisson/redisson/blob/master/CHANGELOG.md) | [Code examples](https://github.com/redisson/redisson-examples) | [Report an issue](https://github.com/redisson/redisson/issues/new) -Based on high-performance async and lock-free Java Redis client and [Netty](http://netty.io) framework. +High-performance async and lock-free Java client for Redis and Valkey based on [Netty](http://netty.io) framework. ## Features @@ -16,14 +16,14 @@ Based on high-performance async and lock-free Java Redis client and [Netty](http * [Redis](https://redis.io) compatible - from 3.0 up to the latest version * [Valkey](https://valkey.io) compatible - from 7.2.5 up to the latest version * Supported deployment types - * [Proxy](https://github.com/redisson/redisson/wiki/2.-Configuration/#29-proxy-mode) - * [Multi-Cluster](https://github.com/redisson/redisson/wiki/2.-Configuration/#210-multi-cluster-mode) - * [Multi-Sentinel](https://github.com/redisson/redisson/wiki/2.-Configuration/#211-multi-sentinel-mode) - * [Single](https://github.com/redisson/redisson/wiki/2.-Configuration/#26-single-instance-mode) - * [Cluster](https://github.com/redisson/redisson/wiki/2.-Configuration/#24-cluster-mode) - * [Sentinel](https://github.com/redisson/redisson/wiki/2.-Configuration/#27-sentinel-mode) - * [Replicated](https://github.com/redisson/redisson/wiki/2.-Configuration/#25-replicated-mode) - * [Master and Slaves](https://github.com/redisson/redisson/wiki/2.-Configuration/#28-master-slave-mode) + * [Proxy](configuration.md/#proxy-mode) + * [Multi-Cluster](configuration.md/#multi-cluster-mode) + * [Multi-Sentinel](configuration.md/#multi-sentinel-mode) + * [Single](configuration.md/#single-mode) + * [Cluster](configuration.md/#cluster-mode) + * [Sentinel](configuration.md/#sentinel-mode) + * [Replicated](configuration.md/#replicated-mode) + * [Master and Slaves](configuration.md/#master-slave-mode) * Amazon Web Services compatible * [AWS Elasticache Serverless](https://aws.amazon.com/elasticache/features/#Serverless) * [AWS Redis Global Datastore](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html) @@ -50,178 +50,48 @@ Based on high-performance async and lock-free Java Redis client and [Netty](http * Supports SSL * Asynchronous connection pool * Lua scripting -* [RediSearch](https://github.com/redisson/redisson/wiki/9.-distributed-services/#96-redisearch-service) -* [JSON datatype](https://github.com/redisson/redisson/wiki/6.-distributed-objects/#615-json-object-holder) -* [JSON Store](https://github.com/redisson/redisson/wiki/7.-distributed-collections/#724-json-store) -* [Reactive Streams](https://github.com/redisson/redisson/wiki/3.-operations-execution#32-reactive-way) API -* [RxJava3](https://github.com/redisson/redisson/wiki/3.-operations-execution#32-reactive-way) API -* [Asynchronous](https://github.com/redisson/redisson/wiki/3.-operations-execution#31-async-way) API +* [RediSearch](data-and-services/services.md/#redisearch-service) +* [JSON datatype](data-and-services/objects.md/#json-object-holder) +* [JSON Store](data-and-services/collections.md/#json-store) +* [Reactive Streams](api-models.md/#reactive-api) API +* [RxJava3](api-models.md/#rxjava-api) API +* [Asynchronous](api-models.md/#synchronous-and-asynchronous-api) API * Local cache support including [Caffeine](https://github.com/ben-manes/caffeine)-based implementation -* [Distributed Java objects](https://github.com/redisson/redisson/wiki/6.-Distributed-objects) - Object holder, Binary stream holder, Geospatial holder, BitSet, AtomicLong, AtomicDouble, PublishSubscribe, - Bloom filter, HyperLogLog -* [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 -* [Distributed Java locks and synchronizers](https://github.com/redisson/redisson/wiki/8.-Distributed-locks-and-synchronizers) +* [Cache API implementations](cache-api-implementations.md) + Spring Cache, JCache API (JSR-107), Hibernate Cache, MyBatis Cache, Quarkus Cache, Micronaut Cache +* [Distributed Java objects](data-and-services/objects.md) + Object holder, JSON holder, Binary stream holder, Geospatial holder, BitSet, PublishSubscribe, Bloom filter, HyperLogLog +* [Distributed Java counters](data-and-services/counters.md) + AtomicLong, AtomicDouble, LongAdder, DoubleAdder +* [Distributed Java collections](data-and-services/collections.md) + JSON Store, Map, Multimap, Set, List, SortedSet, ScoredSortedSet, LexSortedSet, Queue, Deque, Blocking Queue, Bounded Blocking Queue, Blocking Deque, Delayed Queue, Priority Queue, Priority Deque +* [Distributed Java locks and synchronizers](data-and-services/locks-and-synchronizers.md) Lock, FairLock, MultiLock, RedLock, ReadWriteLock, Semaphore, PermitExpirableSemaphore, CountDownLatch -* [Distributed services](https://github.com/redisson/redisson/wiki/9.-distributed-services) +* [Distributed services](data-and-services/services.md) Remote service, Live Object service, Executor service, Scheduler service, MapReduce service -* [Helidon](https://github.com/redisson/redisson/tree/master/redisson-helidon) integration -* [Micronaut](https://github.com/redisson/redisson/tree/master/redisson-micronaut) integration -* [Quarkus](https://github.com/redisson/redisson/tree/master/redisson-quarkus) integration -* [Spring Cache](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#142-spring-cache) implementation -* [Spring Cloud Stream](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#149-spring-cloud-stream) implementation -* [Spring Transaction API](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#148-spring-transaction-manager) implementation -* [Spring Data Redis](https://github.com/redisson/redisson/tree/master/redisson-spring-data) implementation -* [Spring Boot Starter](https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter) implementation -* [Hibernate Cache](https://github.com/redisson/redisson/tree/master/redisson-hibernate) implementation -* [MyBatis Cache](https://github.com/redisson/redisson/tree/master/redisson-mybatis) implementation -* [Transactions API](https://github.com/redisson/redisson/wiki/10.-Additional-features#104-transactions) -* [JCache API (JSR-107)](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#144-jcache-api-jsr-107-implementation) implementation -* [Tomcat Session Manager](https://github.com/redisson/redisson/tree/master/redisson-tomcat) implementation -* [Spring Session](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#147-spring-session) implementation -* [Redis pipelining](https://github.com/redisson/redisson/wiki/10.-additional-features#103-execution-batches-of-commands) (command batches) +* [Microservices integration](microservices-integration.md) + Helidon, Micronaut, Quarkus +* [Integration with Spring framework](integration-with-spring.md) + Spring Boot Starter, Spring Cache, Spring Session, Spring Transaction Manager, Spring Cloud Stream, Spring Data Redis +* [Web Session Management](web-session-management.md) + Apache Tomcat Session, Spring Session, Micronaut Session +* [Transactions API](transactions.md) +* [Redis pipelining](pipelining.md) (command batches) * Supports many popular codecs ([Kryo](https://github.com/EsotericSoftware/kryo), [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/), [Amazon Ion](https://amzn.github.io/ion-docs/), [LZ4](https://github.com/jpountz/lz4-java), [Snappy](https://github.com/xerial/snappy-java), [Protobuf](https://github.com/protocolbuffers/protobuf) and JDK Serialization) * 2000+ unit tests - ## Comparing solutions - -### [Redisson vs Jedis](https://redisson.org/feature-comparison-redisson-vs-jedis.html) -### [Redisson vs Lettuce](https://redisson.org/feature-comparison-redisson-vs-lettuce.html) -### [Redis vs Apache Ignite](https://redisson.org/feature-comparison-redis-vs-ignite.html) -### [Redis vs Hazelcast](https://redisson.org/feature-comparison-redis-vs-hazelcast.html) -### [Redis vs Ehcache](https://redisson.org/feature-comparison-redis-vs-ehcache.html) +- [Redisson vs Jedis](https://redisson.org/feature-comparison-redisson-vs-jedis.html) +- [Redisson vs Lettuce](https://redisson.org/feature-comparison-redisson-vs-lettuce.html) +- [Redis vs Apache Ignite](https://redisson.org/feature-comparison-redis-vs-ignite.html) +- [Redis vs Hazelcast](https://redisson.org/feature-comparison-redis-vs-hazelcast.html) +- [Redis vs Ehcache](https://redisson.org/feature-comparison-redis-vs-ehcache.html) ## Success stories -### [Moving from Hazelcast to Redis / Datorama](https://engineering.datorama.com/moving-from-hazelcast-to-redis-b90a0769d1cb) -### [Migrating from Hazelcast to Redis / Halodoc](https://blogs.halodoc.io/why-and-how-we-move-from-hazelcast-to-redis-2/) -### [Distributed Locking with Redis (Migration from Hazelcast) / ContaAzul](https://carlosbecker.com/posts/distributed-locks-redis/) -### [Migrating from Coherence to Redis](https://www.youtube.com/watch?v=JF5R2ucKTEg) - - -## Quick start - -#### Maven - - org.redisson - redisson - 3.36.0 - - -#### Gradle - compile 'org.redisson:redisson:3.36.0' - -#### SBT - libraryDependencies += "org.redisson" % "redisson" % "3.36.0" - -#### Java - -```java -// 1. Create config object -Config config = new Config(); -config.useClusterServers() - // use "rediss://" for SSL connection - .addNodeAddress("redis://127.0.0.1:7181"); - -// or read config from file -config = Config.fromYAML(new File("config-file.yaml")); -``` - -```java -// 2. Create Redisson instance - -// Sync and Async API -RedissonClient redisson = Redisson.create(config); - -// Reactive API -RedissonReactiveClient redissonReactive = redisson.reactive(); - -// RxJava3 API -RedissonRxClient redissonRx = redisson.rxJava(); -``` - -```java -// 3. Get Redis based implementation of java.util.concurrent.ConcurrentMap -RMap map = redisson.getMap("myMap"); - -RMapReactive mapReactive = redissonReactive.getMap("myMap"); - -RMapRx mapRx = redissonRx.getMap("myMap"); -``` - -```java -// 4. Get Redis based implementation of java.util.concurrent.locks.Lock -RLock lock = redisson.getLock("myLock"); - -RLockReactive lockReactive = redissonReactive.getLock("myLock"); - -RLockRx lockRx = redissonRx.getLock("myLock"); -``` - -```java -// 4. Get Redis based implementation of java.util.concurrent.ExecutorService -RExecutorService executor = redisson.getExecutorService("myExecutorService"); - -// over 50 Redis based Java objects and services ... - -``` - -Upgrade to __[Redisson PRO](https://redisson.pro)__ with **advanced features**. - -## Downloads - -[Redisson 3.36.0](https://repo1.maven.org/maven2/org/redisson/redisson/3.36.0/redisson-3.36.0.jar), -[Redisson node 3.36.0](https://repo1.maven.org/maven2/org/redisson/redisson-all/3.36.0/redisson-all-3.36.0.jar) - -## FAQs - -[Q: What is the cause of RedisTimeoutException?](https://github.com/redisson/redisson/wiki/16.-FAQ#q-what-is-the-cause-of-redistimeoutexception) - -[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) - -[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) +- [Moving from Hazelcast to Redis / Datorama](https://engineering.datorama.com/moving-from-hazelcast-to-redis-b90a0769d1cb) +- [Migrating from Hazelcast to Redis / Halodoc](https://blogs.halodoc.io/why-and-how-we-move-from-hazelcast-to-redis-2/) +- [Distributed Locking with Redis (Migration from Hazelcast) / ContaAzul](https://carlosbecker.com/posts/distributed-locks-redis/) +- [Migrating from Coherence to Redis](https://www.youtube.com/watch?v=JF5R2ucKTEg) +Upgrade to __[Redisson PRO](https://redisson.pro)__ with **advanced features**. \ No newline at end of file