# Redis based MyBatis Cache implementation Implements [MyBatis Cache](https://mybatis.org/mybatis-3/sqlmap-xml.html#cache) based on Redis. Compatible with MyBatis 3.0.0+ Redisson provides various MyBatis Cache implementations including those with features below: **local cache** - so called `near cache`, which is useful for use cases when MyBatis Cache used mostly for read operations and/or network roundtrips are undesirable. It caches Map entries on Redisson side and executes read operations up to **45x faster** in comparison with common implementation. All local caches with the same name connected to the same pub/sub channel which is used for messaging between them. In particular to send entity update or entity invalidate event. **data partitioning** - allows to scale available memory, read/write operations and entry eviction process for individual MyBatis Cache instance in Redis cluster. Below is the list of all available implementations with local cache and/or data partitioning support: |Class name | Local cache | Data
partitioning | Ultra-fast read/write | | ------------- | :-----------: | :----------:| :----------:| |RedissonCache
open-source version | ❌ | ❌ | ❌ | |RedissonCache
[Redisson PRO](http://redisson.pro) version | ❌ | ❌ | ✔️ | |RedissonLocalCachedCache
available only in [Redisson PRO](http://redisson.pro) | ✔️ | ❌ | ✔️ | |RedissonClusteredCache
available only in [Redisson PRO](http://redisson.pro) | ❌ | ✔️ | ✔️ | |RedissonClusteredLocalCachedCache
available only in [Redisson PRO](http://redisson.pro) | ✔️ | ✔️ | ✔️ | ## MyBatis Cache Usage ### 1. Add `redisson-mybatis` dependency into your project: Maven ```xml org.redisson redisson-mybatis 3.23.2 ``` Gradle ```groovy compile 'org.redisson:redisson-mybatis:3.23.2' ``` ### 2. Specify MyBatis cache settings Redisson allows to define follow settings per Cache instance: `timeToLive` - defines time to live per cache entry `maxIdleTime` - defines max idle time per cache entry `maxSize` - defines max size of entries amount stored in Redis `localCacheProvider` - cache provider used as local cache store. `REDISSON` and `CAFFEINE` providers are available. Default value: `REDISSON` `localCacheEvictionPolicy` - local cache eviction policy. `LFU`, `LRU`, `SOFT`, `WEAK` and `NONE` eviction policies are available. `localCacheSize` - local cache size. If size is `0` then local cache is unbounded. `localCacheTimeToLive` - time to live in milliseconds for each map entry in local cache. If value equals to `0` then timeout is not applied. `localCacheMaxIdleTime` - max idle time in milliseconds for each map entry in local cache. If value equals to `0` then timeout is not applied. `localCacheSyncStrategy` - local cache sync strategy. `INVALIDATE`, `UPDATE` and `NONE` eviction policies are available. `redissonConfig` - defines path to redisson config in YAML format Examples: ```xml ```