Pipelined
All commands are pipelined.
Data Handlers
Data Handlers specify serialization and de-serialization between Java Objects and bytes stored in redis.
In addition to the data handlers provided you can define and use your own Custom Data handler.
OPTI_JAVA_HANDLER
Opti Java Handler is an efficient Data Handler for Java Objects.
In normal Java Serialization the Class Descriptors used to specify the Class structure in the form of fields is repeated for each serialization.
Opti Java Handler avoids this repetition of information by maintaining a common set of class descriptors under a REDIS key and having indexes in the serialized data point to this list.
Built-in GZIP Compression
Java and Opti Java data handlers use gzip to compress data larger than 1 Kb.
Scripting Support
pseudo command EVALCHECK automatically checks and loads a Redis script for the
first time before running it with the EVALSHA command.
Subscribe API for messaging
There is a Subscribe API for subscribing to messages sent using Redis's PUB/SUB mechanism.
Client side Sharding
For commands that use a single key or with MSET and MGET you can distribute keys across multiple servers based on a Consistent Hashing Algorithm.
Synchronous and Asynchronous usage
You can use the java Future based methods for synchronous usage or Callback based methods for asynchronous usage.
Connection Pool for Transactions
The default single connection is not suitable for the stateful transactions using redis WATCH command.
A connection pool is provided for this purpose.
The pool also has an asynchronous borrow API.
Closing of idle connections
Connections idle beyond a configurable time (Default 15 minutes) are closed.
An automatic re-connection is done when a closed connection receives a new command.