docs updated

pull/6329/head
Nikita Koksharov 2 months ago
parent 08d98cf06d
commit 05b91d2588

@ -5,7 +5,7 @@ Config config = new Config();
config.setTransportMode(TransportMode.EPOLL);
config.useClusterServers()
// use "rediss://" for SSL connection
.addNodeAddress("perredis://127.0.0.1:7181");
.addNodeAddress("redis://127.0.0.1:7181");
RedissonClient redisson = Redisson.create(config);
```
@ -256,7 +256,7 @@ Compatible with:
* [Redis Cluster](https://redis.io/docs/latest/operate/oss_and_stack/reference/cluster-spec/)
* [Valkey Cluster](https://valkey.io/topics/cluster-spec/)
* [AWS ElastiCache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html#WhatIs.Clusters)
* [AWS ElastiCache Cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/designing-elasticache-cluster.html)
* [Amazon MemoryDB](https://aws.amazon.com/memorydb)
* [Azure Redis Cache](https://azure.microsoft.com/en-us/services/cache/)
@ -274,7 +274,6 @@ config.useClusterServers()
RedissonClient redisson = Redisson.create(config);
```
### Cluster settings
Documentation covering Redis server cluster configuration is [here](https://redis.io/topics/cluster-tutorial).
Cluster connection mode is activated by the following line:
`ClusterServersConfig clusterConfig = config.useClusterServers();`
@ -294,6 +293,13 @@ Default value: `1000`
Scan interval in milliseconds. Applied to Redis or Valkey clusters topology scans.
**topicSlots**
Default value: `9`
Partitions amount used for topic partitioning. Applied to `RClusteredTopic` and `RClusteredReliableTopic` objects.
_This setting is available only in [Redisson PRO](https://redisson.pro) edition._
**slots**
Default value: `231`
@ -592,7 +598,7 @@ With Replicated mode the role of each node is polled to determine if a failover
Compatible with:
* [AWS ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.html) (non-clustered)
* [AWS ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Replication.html) (non-clustered)
* [Azure Redis Cache](https://azure.microsoft.com/en-us/services/cache/) (non-clustered)
* [Google Cloud Memorystore for Redis High availability](https://cloud.google.com/memorystore/docs/redis/high-availability)
@ -1701,6 +1707,8 @@ transportMode: "NIO"
## Proxy mode
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Proxy mode supports single or multiple Redis or Valkey databases (including synced with active-active replication) used for read/write operations. Each Redis or Valkey hostname might be resolved to more than one IP address.
Depending on value of [proxyMode](#proxy-mode) setting there are two modes:
@ -1717,8 +1725,6 @@ Compatible with:
* [Redis Enterprise Multiple Active Proxy](https://docs.redis.com/latest/rs/databases/configure/proxy-policy/#about-multiple-active-proxy-support)
* [Redis Enterprise Active-Active databases](https://docs.redis.com/latest/rs/databases/active-active/get-started/)
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Programmatic config example:
```java
Config config = new Config();
@ -1981,15 +1987,15 @@ transportMode: "NIO"
## Multi cluster mode
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Supports multiple Redis or Valkey Cluster setups with active-passive data replication relationship. Replication of the primary Cluster with secondary Redis Cluster is managed by `replicationMode` setting.
Cluster with all available master nodes becomes the primary. Master nodes availability scan interval is defined by `scanInterval` setting.
Compatible with:
* [AWS Redis Global Datastore](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
* [AWS Elasticache Global Datastore](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastore.html).
Programmatic config example:
```java
@ -2317,12 +2323,12 @@ transportMode: "NIO"
## Multi Sentinel mode
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Supports multiple Redis or Valkey Sentinel setups with active-passive data replication.
Replication of primary Sentinel deployment with secondary Sentinel deployments is managed by `replicationMode` setting. First sentinel host belongs to the active Sentinel setup and others to Passive Sentinel Setups.
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Programmatic config example:
```java
Config config = new Config();

@ -8,7 +8,7 @@ Code example:
RTopic topic = redisson.getTopic("myTopic");
int listenerId = topic.addListener(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -23,7 +23,7 @@ Code example of **[Async](https://static.javadoc.io/org.redisson/redisson/latest
RTopicAsync topic = redisson.getTopic("myTopic");
RFuture<Integer> listenerFuture = topic.addListenerAsync(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -39,7 +39,7 @@ RedissonReactiveClient redisson = redissonClient.reactive();
RTopicReactive topic = redisson.getTopic("myTopic");
Mono<Integer> listenerMono = topic.addListener(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -55,7 +55,7 @@ RedissonRxClient redisson = redissonClient.rxJava();
RTopicRx topic = redisson.getTopic("myTopic");
Single<Integer> listenerMono = topic.addListener(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -65,6 +65,39 @@ RTopicRx topic = redisson.getTopic("myTopic");
Single<Long> publishMono = topic.publish(new SomeObject());
```
### Partitioning
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Although each Topic instance is cluster-compatible, it can be connected only to a single Redis or Valkey node which owns the topic name. That may cause the following issues:
* CPU overload on a single node.
* Overload of network or data traffic to a single node.
* Interruptions during failover.
Topic partitioning allows to resolve the issues above by connecting to each node and sharding messages between them. Partitions amount is defined through the global [topicSlots](../configuration.md) setting or per instance through `ClusteredTopicOptions.slots()` setting, which overrides the global setting.
Slots definition per instance:
```java
RClusteredTopic topic = redisson.getClusteredTopic(ClusteredTopicOptions.name("myTopic").slots(15));
```
Usage example:
```java
RClusteredTopic topic = redisson.getClusteredTopic("myTopic");
int listenerId = topic.addListener(MyObject.class, new MessageListener<MyObject>() {
@Override
public void onMessage(CharSequence channel, MyObject message) {
//...
}
});
// in other thread or JVM
RClusteredTopic topic = redisson.getClusteredTopic("myTopic");
long clientsReceivedMessage = topic.publish(new MyObject());
```
## Topic pattern
Java implementation of Redis or Valkey based [RPatternTopic](https://static.javadoc.io/org.redisson/redisson/latest/org/redisson/api/RPatternTopic.html) object. It allows to subscribe to multiple topics by specified glob-style pattern.
@ -82,7 +115,7 @@ Code example:
RPatternTopic patternTopic = redisson.getPatternTopic("topic*");
int listenerId = patternTopic.addListener(Message.class, new PatternMessageListener<Message>() {
@Override
public void onMessage(String pattern, String channel, Message msg) {
public void onMessage(CharSequence pattern, CharSequence channel, Message msg) {
//...
}
});
@ -93,7 +126,7 @@ Code example of **[Async](https://static.javadoc.io/org.redisson/redisson/latest
RPatternTopicAsync patternTopic = redisson.getPatternTopic("topic*");
RFuture<Integer> listenerFuture = patternTopic.addListenerAsync(Message.class, new PatternMessageListener<Message>() {
@Override
public void onMessage(String pattern, String channel, Message msg) {
public void onMessage(CharSequence pattern, CharSequence channel, Message msg) {
//...
}
});
@ -105,7 +138,7 @@ RedissonReactiveClient redisson = redissonClient.reactive();
RTopicReactive patternTopic = redisson.getPatternTopic("topic*");
Mono<Integer> listenerMono = patternTopic.addListener(Message.class, new PatternMessageListener<Message>() {
@Override
public void onMessage(String pattern, String channel, Message msg) {
public void onMessage(CharSequence pattern, CharSequence channel, Message msg) {
//...
}
});
@ -117,7 +150,7 @@ RedissonRxClient redisson = redissonClient.rxJava();
RTopicRx patternTopic = redisson.getPatternTopic("topic*");
Single<Integer> listenerSingle = patternTopic.addListener(Message.class, new PatternMessageListener<Message>() {
@Override
public void onMessage(String pattern, String channel, Message msg) {
public void onMessage(CharSequence pattern, CharSequence channel, Message msg) {
//...
}
});
@ -133,7 +166,7 @@ Code example:
RShardedTopic topic = redisson.getShardedTopic("myTopic");
int listenerId = topic.addListener(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -148,7 +181,7 @@ Code example of **[Async](https://static.javadoc.io/org.redisson/redisson/latest
RShardedTopicAsync topic = redisson.getShardedTopic("myTopic");
RFuture<Integer> listenerFuture = topic.addListenerAsync(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -164,7 +197,7 @@ RedissonReactiveClient redisson = redissonClient.reactive();
RShardedTopicReactive topic = redisson.getShardedTopic("myTopic");
Mono<Integer> listenerMono = topic.addListener(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -180,7 +213,7 @@ RedissonRxClient redisson = redissonClient.rxJava();
RShardedTopicRx topic = redisson.getShardedTopic("myTopic");
Single<Integer> listenerMono = topic.addListener(SomeObject.class, new MessageListener<SomeObject>() {
@Override
public void onMessage(String channel, SomeObject message) {
public void onMessage(CharSequence channel, SomeObject message) {
//...
}
});
@ -190,6 +223,40 @@ RShardedTopicRx topic = redisson.getShardedTopic("myTopic");
Single<Long> publishMono = topic.publish(new SomeObject());
```
### Partitioning
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Although each ShardedTopic instance is cluster-compatible, it can be connected only to a single Redis or Valkey node which owns the topic name. That may cause the following issues:
* CPU overload on a single node.
* Overload of network or data traffic to a single node.
* Interruptions during failover.
ShardedTopic partitioning allows to resolve the issues above by connecting to each node and sharding messages between them. Partitions amount is defined through the global [topicSlots](../configuration.md) setting or per instance through `ClusteredTopicOptions.slots()` setting, which overrides the global setting.
Slots definition per instance:
```java
RClusteredTopic topic = redisson.getClusteredTopic(ClusteredTopicOptions.name("myTopic").slots(15));
```
Usage example:
```java
RClusteredTopic topic = redisson.getClusteredTopic("myTopic");
int listenerId = topic.addListener(MyObject.class, new MessageListener<MyObject>() {
@Override
public void onMessage(CharSequence channel, MyObject message) {
//...
}
});
// in other thread or JVM
RClusteredTopic topic = redisson.getClusteredTopic("myTopic");
long clientsReceivedMessage = topic.publish(new MyObject());
```
## Reliable Topic
Java implementation of Redis or Valkey based [RReliableTopic](https://static.javadoc.io/org.redisson/redisson/latest/org/redisson/api/RReliableTopic.html) object implements Publish / Subscribe mechanism with reliable delivery of messages. In case of Redis or Valkey connection interruption all missed messages are delivered after reconnection to Redis. Message considered as delivered when it was received by Redisson and submited for processing by topic listeners.
@ -259,4 +326,38 @@ Single<String> listenerRx = topic.addListener(SomeObject.class, new MessageListe
// in other thread or JVM
RReliableTopicRx topic = redisson.getReliableTopic("anyTopic");
Single<Long> publisRx = topic.publish(new SomeObject());
```
### Partitioning
_This feature is available only in [Redisson PRO](https://redisson.pro) edition._
Although each ReliableTopic instance is cluster-compatible, it can be connected only to a single Redis or Valkey node which owns the topic name. That may cause the following issues:
* CPU overload on a single node.
* Overload of network or data traffic to a single node.
* Interruptions during failover.
ReliableTopic partitioning allows to resolve the issues above by connecting to each node and sharding messages between them. Partitions amount is defined through the global [topicSlots](../configuration.md) setting or per instance through `ClusteredTopicOptions.slots()` setting, which overrides the global setting.
Slots definition per instance:
```java
RClusteredReliableTopic topic
= redisson.getClusteredReliableTopic(ClusteredTopicOptions.name("myTopic").slots(15));
```
Usage example:
```java
RClusteredReliableTopic topic = redisson.getClusteredReliableTopic("myTopic");
int listenerId = topic.addListener(MyObject.class, new MessageListener<MyObject>() {
@Override
public void onMessage(CharSequence channel, MyObject message) {
//...
}
});
// in other thread or JVM
RClusteredReliableTopic topic = redisson.getClusteredReliableTopic("myTopic");
long clientsReceivedMessage = topic.publish(new MyObject());
```

@ -2,28 +2,28 @@
**A** : There are multiple reasons:
1. All netty threads are busy, leading to delays in both Redis response decoding and sending commands to Redis.
1. All netty threads are busy, leading to delays in both response decoding and sending commands.
2. All connections are busy.
3. Redis server is busy and takes too long to respond the request.
3. Redis or Valkey server is busy and takes too long to respond the request.
4. Java application is busy.
5. Blocking invocation in async/reactive/rx listeners or subscribeOnElements methods.
6. Server CPU throttling. For GCP hosting try to add `--no-cpu-throttling` to CloudRun container which connects via Redisson to the Redis instance.
6. Server CPU throttling. For GCP hosting try to add `--no-cpu-throttling` to CloudRun container which connects via Redisson to the Redis or Valkey instance.
7. Unstable network with TCP packet drops.
8. Redis vendor limits concurrent connections amount.
8. Redis or Valkey vendor limits concurrent connections amount.
First try to set follow values for `nettyThreads` setting: 32, 64, 128, 256 this allows Redisson to get a free netty thread to decode a response or send a command. Next, try to increase `retryInterval` and/or `timeout` to a reasonable value so that a command can still gracefully fail without having the end user wait forever. At the last step, try to increase `connection pool` setting so that Redisson can stand a better chance in getting a free connection.
Complex commands such as `keys`, `hmget` and big loops in Lua scripts are more likely to see it than other commands. It is important to understand an operation can still timeout despite the absence of it from the Redis slowlog. Slowlogs only record the time a command is been processed by the Redis event loop and not anything before or after. Network issue may also cause this exception when a response is still in-flight.
Complex commands such as `keys`, `hmget` and big loops in Lua scripts are more likely to see it than other commands. It is important to understand an operation can still timeout despite the absence of it from the Redis or Valkey slowlog. Slowlogs only record the time a command is been processed by the Redis or Valkey event loop and not anything before or after. Network issue may also cause this exception when a response is still in-flight.
**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?**
**A** : Redisson instance requires manual shutdown only if you want to stop using all of its features. It is a common pattern that Redisson starts and stops along with the application. Since it is completely thread safe, you may treat a Redisson instance as a singleton. The shutdown sequence will disconnect all the active connections held in each connection pool, and it will clean up certain types of Redisson objects require a manual destroy action upon disposal, it will then stop the event loops. Please be advised, the entire shutdown process is not instant.
**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?**
**Q: In MapCache/SetCache/SpringCache/JCache, I have set an expiry time to an entry, why is it still in Redis or Valkey when it should be disappeared?**
**A** : The first and foremost thing you need to understand is entry expiry feature is not supported by Redis. This is one of Redissons own creation. Which means it requires Redisson to work. You cant expect a correct behaviour using other clients such as redis-cli or even jedis.
**A** : The first and foremost thing you need to understand is entry expiry feature is not supported by Redis or Valkey. This is one of Redissons own creation. Which means it requires Redisson to work. You cant expect a correct behaviour using other clients such as redis-cli or even jedis.
Redisson employs both active approach and passive approach, just like Redis server, to ensure an element is evicted when its time is due. There is are scheduled eviction tasks that runs periodically to remove the expired elements from the collection, Redisson also checks the expiry information when an element is accessed: if it has expired, it will be removed and a null value will be returned.
Redisson employs both active approach and passive approach, just like Redis or Valkey server, to ensure an element is evicted when its time is due. There is are scheduled eviction tasks that runs periodically to remove the expired elements from the collection, Redisson also checks the expiry information when an element is accessed: if it has expired, it will be removed and a null value will be returned.
So if you saw the stale value in redis-cli, please do not panic, it will be removed when the scheduled task catches up or when you next request it through Redisson.

@ -160,6 +160,7 @@ spring:
- `RedissonReactiveClient`
- `RedisTemplate`
- `ReactiveRedisTemplate`
- `ReactiveRedisOperations`
Upgrade to __[Redisson PRO](https://redisson.pro)__ with **advanced features**.
@ -488,7 +489,7 @@ spring.cloud.stream.bindings.feedSupplier-out-0.producer.useNativeEncoding=true
## Spring Data Redis
Integrates Redisson with Spring Data Redis library. Implements Spring Data's `RedisConnectionFactory` and `ReactiveRedisConnectionFactory` interfaces and allows to interact with Redis or Valkey through `RedisTemplate` or `ReactiveRedisTemplate` object.
Integrates Redisson with Spring Data Redis library. Implements Spring Data's `RedisConnectionFactory` and `ReactiveRedisConnectionFactory` interfaces and allows to interact with Redis or Valkey through `RedisTemplate`, `ReactiveRedisTemplate` or `ReactiveRedisOperations` object.
### Usage
1. Add `redisson-spring-data` dependency into your project:

@ -440,17 +440,17 @@ Base name: `redisson.redis.<host>:<port>`
* `connections.total` - A Counter of the number of total connections in pool
<br/>
* `operations.total` - A Meter of the number of total executed operations
* `operations.total-failed` - A Meter of the number of total failed operations
* `operations.total-successful` - A Meter of the number of total successful operations
* `operations.latency` - A Histogram of the number of operations latency in milliseconds
* `operations.retry-attempt` - A Histogram of the number of operations retry attempts
<br/>
* `publish-subscribe-connections.active` - A Counter of the number of active publish subscribe connections
* `publish-subscribe-connections.free` - A Counter of the number of free publish subscribe connections
* `publish-subscribe-connections.max-pool-size` - A Counter of the number of maximum publish subscribe connection pool size
* `publish-subscribe-connections.total` - A Counter of the number of total publish subscribe connections in pool
<br/>
* `operations.total` - A Meter of the number of total executed operations
* `operations.total-failed` - A Meter of the number of total failed operations
* `operations.total-successful` - A Meter of the number of total successful operations
* `operations.latency` - A Histogram of the number of operations latency in milliseconds
* `operations.retry-attempt` - A Histogram of the number of operations retry attempts
**Metrics per RRemoteService object**
@ -479,8 +479,8 @@ Base name: `redisson.executor-service.<name>`
Base name: `redisson.map.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
@ -488,8 +488,8 @@ Base name: `redisson.map.<name>`
Base name: `redisson.map-cache.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
@ -497,8 +497,8 @@ Base name: `redisson.map-cache.<name>`
Base name: `redisson.map-cache-v2.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
@ -506,8 +506,8 @@ Base name: `redisson.map-cache-v2.<name>`
Base name: `redisson.map-cache-native.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
@ -515,8 +515,8 @@ Base name: `redisson.map-cache-native.<name>`
Base name: `redisson.clustered-map-cache.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
@ -524,8 +524,8 @@ Base name: `redisson.clustered-map-cache.<name>`
Base name: `redisson.clustered-map-cache-native.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
@ -534,105 +534,157 @@ Base name: `redisson.clustered-map-cache-native.<name>`
Base name: `redisson.local-cached-map.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in local cache
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of local cache size
**Metrics per RClusteredLocalCachedMap object**
Base name: `redisson.clustered-local-cached-map.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in local cache
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of local cache size
**Metrics per RLocalCachedMapCache object**
Base name: `redisson.local-cached-map-cache.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in local cache
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of local cache size
**Metrics per RLocalCachedMapCacheV2 object**
Base name: `redisson.local-cached-map-cache-v2.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in local cache
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of local cache size
**Metrics per RLocalCachedMapCacheNative object**
Base name: `redisson.local-cached-map-cache-native.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in local cache
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of local cache size
**Metrics per RClusteredLocalCachedMapCache object**
Base name: `redisson.clustered-local-cached-map-cache.<name>`
* `hits` - A Meter of the number of get requests for data contained in cache
* `misses` - A Meter of the number of get requests for data not contained in cache
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in local cache
* `local-cache.size` - A Gauge of the number of local cache size
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of the local cache size
**Metrics per RJsonStore object**
Base name: `redisson.jsonstore.<name>`
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
**Metrics per RLocalCachedJsonStore object**
Base name: `redisson.local-cached-jsonstore.<name>`
* `hits` - A Meter of the number of get requests for data contained in the cache
* `misses` - A Meter of the number of get requests for data not contained in the cache
* `puts` - A Meter of the number of puts to the cache
* `removals` - A Meter of the number of removals from the cache
<br/>
* `local-cache.hits` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.misses` - A Meter of the number of get requests for data contained in the local cache
* `local-cache.evictions` - A Meter of the number of evictions for data contained in the local cache
* `local-cache.size` - A Gauge of the number of the local cache size
**Metrics per RTopic object**
Base name: `redisson.topic.<name>`
* `messages-sent` - A Meter of the number of messages sent for topic
* `messages-received` - A Meter of the number of messages received for topic
* `messages-sent` - A Meter of the number of messages sent for the topic
* `messages-received` - A Meter of the number of messages received for the topic
**Metrics per RClusteredTopic object**
Base name: `redisson.clustered-topic.<name>`
* `messages-sent` - A Meter of the number of messages sent for the topic
* `messages-received` - A Meter of the number of messages received for the topic
**Metrics per RReliableTopic object**
Base name: `redisson.reliable-topic.<name>`
* `messages-sent` - A Meter of the number of messages sent for the topic
* `messages-received` - A Meter of the number of messages received for the topic
**Metrics per RClusteredReliableTopic object**
Base name: `redisson.clustered-reliable-topic.<name>`
* `messages-sent` - A Meter of the number of messages sent for the topic
* `messages-received` - A Meter of the number of messages received for the topic
**Metrics per RShardedTopic object**
Base name: `redisson.sharded-topic.<name>`
* `messages-sent` - A Meter of the number of messages sent for the topic
* `messages-received` - A Meter of the number of messages received for the topic
**Metrics per RBucket object**
Base name: `redisson.bucket.<name>`
* `gets` - A Meter of the number of get operations executed for bucket object
* `sets` - A Meter of the number of set operations executed for bucket object
* `gets` - A Meter of the number of get operations executed for the object
* `sets` - A Meter of the number of set operations executed for the object
**Metrics per JCache object**

Loading…
Cancel
Save