Spring boot 2.0 连接 Redis 集群之 Sentinel 和 Cluster 集群模式
关于 Redis 集群的搭建可以参考我的另一篇博客:
Redis 集群模式详解 - 主从(master-slave)、哨兵(sentinel)、集群(cluster)
Spring Boot 2.0 整合 Redis
下面开始 Spring Boot 2.0 整合 Redis,Spring boot 中整合 Redis 非常简单,在 pom.xml中添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Spring boot 2.0 的 spring-boot-starter-data-redis 中,默认使用的是 Lettuce 作为 Redis 客户端,它与 Jedis 的主要区别如下:
- Jedis 是同步的,不支持异步,Jedis 客户端实例不是线程安全的,需要每个线程一个 Jedis 实例,所以一般通过连接池来使用 Jedis
- Lettuce 是基于 Netty 框架的事件驱动的 Redis 客户端,其方法调用是异步的,Lettuce 的 API 也是线程安全的,所以多个线程可以操作单个 Lettuce 连接来完成各种操作,同时 Lettuce 也支持连接池
如果不使用默认的 Lettuce,使用 Jedis 的话,可以排除 Lettuce 的依赖,手动加入 Jedis 依赖,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.4.1</version>
</dependency>
在配置文件 application.yml 中添加配置(针对单实例)
spring:
redis:
host: 192.168.1.30
port: 6379
password: 123456
database: 1 # 数据库索引,默认0
timeout: 6000 # 连接超时,单位ms
jedis: # 或lettuce, 连接池配置,springboot 2.0 中使用 jedis 或者 lettuce 配置连接池,默认为 lettuce 连接池
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池分配连接最大阻塞等待时间(阻塞时间到,抛出异常。使用负值表示无限期阻塞)
max-idle: 8 # 连接池中的最大空闲连接数
min-idle: 0 # 连接池中的最小空闲连接数
添加配置类 RedisConfig,其中 @EnableCaching 注解是为了使 @Cacheable、@CacheEvict、@CachePut、@Caching 注解生效
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@EnableCaching
public class RedisConfig {
/**
* redis重写RedisTemplate.
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
//序列化时允许非常量字段均输出类型,即redis序列化后带有类型
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
// key 采用 String 的序列化方式
redisTemplate.setKeySerializer(stringSerializer);
// hash 的 key 也采用 String 的序列化方式
redisTemplate.setHashKeySerializer(stringSerializer);
// value 序列化方式采用 jackson
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
// hash 的 value 序列化方式采用 jackson
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
上述配置类注入了自定义的 RedisTemplate<String, Object>, 替换 RedisAutoConfiguration 中自动配置的 RedisTemplate<Object, Object> 类(RedisAutoConfiguration 另外还自动配置了 StringRedisTemplate)。
此时,我们可以通过定义一个基于 RedisTemplate 的工具类,或通过在 Service 层添加 @Cacheable、@CacheEvict、@CachePut、@Caching 注解来使用缓存。比如定义一个 RedisService 类,封装常用的 Redis 操作方法:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Objects;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
@Component
public class RedisService {
private static final Logger LOGGER = LoggerFactory.getLogger(RedisService.class);
private RedisTemplate<String, Object> redisTemplate;
private StringRedisTemplate stringRedisTemplate;
public RedisService(RedisTemplate<String, Object> redisTemplate,
StringRedisTemplate stringRedisTemplate) {
this.redisTemplate = redisTemplate;
this.stringRedisTemplate = stringRedisTemplate;
}
/**
* 普通缓存放入
*
* @param key 键
* @param value 值
* @return
*/
public void set(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
} catch (Exception e) {
LOGGER.error("exception when set key {}. ", key, e);
}
}
/**
* 普通缓存放入并设置时间
*
* @param key 键
* @param value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return
*/
public void set(String key, Object value, long time) {
try {
if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
} else {
this.set(key, value);
}
} catch (Exception e) {
LOGGER.error("exception when set key {}. ", key, e);
}
}
/**
* 指定缓存失效时间
*
* @param key 键
* @param time 时间(秒)
* @return
*/
public void expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
} catch (Exception e) {
LOGGER.error("exception when expire key {}. ", key, e);
}
}
/**
* 根据key获取过期时间
*
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
*
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
LOGGER.error("exception when check key {}. ", key, e);
return false;
}
}
/**
* 删除缓存
*
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void del(String... key) {
if (Objects.nonNull(key) && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
}
/**
* 普通缓存获取
*
* @param key 键
* @return 值
*/
public Object get(String key) {
return Objects.isNull(key) ? null : redisTemplate.opsForValue().get(key);
}
/**
* 递增
*
* @param key 键
* @param delta 要增加几(大于0)
* @return
*/
public long incr(String key, long delta) {
if (delta <= 0) {
throw new RuntimeException("递增因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, delta);
}
/**
* 递减
*
* @param key 键
* @param delta 要减少几(小于0)
* @return
*/
public long decr(String key, long delta) {
if (delta <= 0) {
throw new RuntimeException("递减因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, -delta);
}
/**
* 获取 Redis 服务器信息
*
* @param type 要获取的属性类型
* @return 属性信息
*/
public Properties getRedisInfo(String type) {
return Objects.isNull(type) ? stringRedisTemplate.getRequiredConnectionFactory().getConnection().info()
: stringRedisTemplate.getRequiredConnectionFactory().getConnection().info(type);
}
}
在 ServiceImpl 下使用参考如下:
@Service
@CacheConfig(cacheNames = "users")
public class UserService {
private static Map<String, User> userMap = new HashMap<>();
@CachePut(key = "#user.username")
public User addUser(User user){
user.setUid(UUID.randomUUID().toString());
System.out.println("add user: " + user);
userMap.put(user.getUsername(), user);
return user;
}
@Caching(put = {
@CachePut( key = "#user.username"),
@CachePut( key = "#user.uid")
})
public User addUser2(User user) {
user.setUid(UUID.randomUUID().toString());
System.out.println("add user2: " + user);
userMap.put(user.getUsername(), user);
return user;
}
...
}
Spring Boot 2.0 整合 Redis Sentinel(哨兵)模式
Spring Boot 2.0 整合 Redis 哨兵模式除了配置稍有差异,其它与整合单实例模式类似,配置参考如下:
spring:
redis:
sentinel:
master: mymaster
nodes: 192.168.1.29:26379,192.168.1.30:26379,192.168.1.31:26379 # 哨兵的 IP:Port 列表
password: 123456
database: 1 # 数据库索引,默认0
timeout: 6000 # 连接超时,单位ms
jedis: # 或lettuce, 连接池配置,springboot 2.0 中使用 jedis 或者 lettuce 配置连接池,默认为 lettuce 连接池
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池分配连接最大阻塞等待时间(阻塞时间到,抛出异常。使用负值表示无限期阻塞)
max-idle: 8 # 连接池中的最大空闲连接数
min-idle: 0 # 连接池中的最小空闲连接数
Spring Boot 2.0 整合 Redis Cluster 模式
Spring Boot 2.0 整合 Redis 哨兵模式除了配置稍有差异,其它与整合单实例模式也类似,配置参考如下:
spring:
redis:
cluster:
nodes: 192.168.1.29:7001, 192.168.1.29:7002, 192.168.1.30:7003, 192.168.1.30:7004, 192.168.1.31:7005, 192.168.1.31:7006
password: 123456
database: 1 # 数据库索引,默认0
timeout: 6000 # 连接超时,单位ms
jedis: # 或lettuce, 连接池配置,springboot 2.0 中使用 jedis 或者 lettuce 配置连接池,默认为 lettuce 连接池
pool:
max-active: 8 # 连接池最大连接数(使用负值表示没有限制)
max-wait: -1 # 连接池分配连接最大阻塞等待时间(阻塞时间到,抛出异常。使用负值表示无限期阻塞)
max-idle: 8 # 连接池中的最大空闲连接数
min-idle: 0 # 连接池中的最小空闲连接数
Unit 测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class JedisPoolTest {
private static final Logger LOGGER = LoggerFactory.getLogger(JedisPoolTest.class);
@Autowired
private RedisService redisService;
@Test
public void redisTest() {
redisService.set("k111", "v111.sanchar");
String v1 = Objects.isNull(redisService.get("k111")) ? "" : redisService.get("k111").toString();
LOGGER.info("value: {}", v1);
boolean isKeyExist = redisService.hasKey("k111");
LOGGER.info("key exist: {}", isKeyExist);
redisService.del("k111");
String v2 = Objects.isNull(redisService.get("k111")) ? "" : redisService.get("k111").toString();
LOGGER.info("value: {}", v2);
Properties replication = redisService.getRedisInfo("replication");
LOGGER.info("replication info: {}", replication);
Properties redisInfo = redisService.getRedisInfo(null);
LOGGER.info("redis Info: {}", redisInfo);
}
}
日志输出如下:
2021-01-16 20:47:03.998 INFO 95185 --- [ main] per.sanchar.san.JedisPoolTest : value: v111.sanchar
2021-01-16 20:47:04.004 INFO 95185 --- [ main] per.sanchar.san.JedisPoolTest : key exist: true
2021-01-16 20:47:04.011 INFO 95185 --- [ main] per.sanchar.san.JedisPoolTest : value:
2021-01-16 20:47:04.080 INFO 95185 --- [ main] per.sanchar.san.JedisPoolTest : replication info: {192.168.1.30:7004.repl_backlog_active=1, 192.168.1.30:7004.master_replid=d262cb91b8b147ce5a15de0b711ca9fdc5754595, 192.168.1.30:7007.repl_backlog_histlen=37380, 192.168.1.30:7007.repl_backlog_size=1048576, 192.168.1.30:7007.master_repl_offset=37380, 192.168.1.31:7005.role=master, 192.168.1.31:7005.repl_backlog_histlen=40325, 192.168.1.30:7004.role=master, 192.168.1.31:7005.repl_backlog_size=1048576, 192.168.1.30:7007.second_repl_offset=-1, 192.168.1.31:7005.master_replid2=0000000000000000000000000000000000000000, 192.168.1.30:7004.repl_backlog_first_byte_offset=1, 192.168.1.31:7005.repl_backlog_active=1, 192.168.1.30:7004.connected_slaves=1, 192.168.1.30:7004.repl_backlog_size=1048576, 192.168.1.30:7003.master_replid=a236cf435d35555d623eda1057bb4be335594aca, 192.168.1.30:7004.master_repl_offset=40067, 192.168.1.30:7003.repl_backlog_active=1, 192.168.1.31:7005.master_replid=077aefe0e9768f38fd0dd79fb416c5cd98379a4c, 192.168.1.31:7005.slave0=ip=192.168.1.29,port=7002,state=online,offset=40325,lag=1, 192.168.1.30:7003.repl_backlog_first_byte_offset=1, 192.168.1.30:7004.second_repl_offset=4635, 192.168.1.31:7005.repl_backlog_first_byte_offset=1, 192.168.1.30:7003.master_repl_offset=40517, 192.168.1.30:7007.repl_backlog_first_byte_offset=1, 192.168.1.30:7007.master_replid2=0000000000000000000000000000000000000000, 192.168.1.30:7003.role=master, 192.168.1.30:7003.slave0=ip=192.168.1.31,port=7006,state=online,offset=40450,lag=0, 192.168.1.30:7007.connected_slaves=1, 192.168.1.30:7003.second_repl_offset=-1, 192.168.1.30:7007.role=master, 192.168.1.30:7007.repl_backlog_active=1, 192.168.1.30:7004.slave0=ip=192.168.1.29,port=7001,state=online,offset=40067,lag=0, 192.168.1.30:7003.repl_backlog_histlen=40517, 192.168.1.30:7004.master_replid2=a37355021b5b210a37bdf73177dd6f96030311f9, 192.168.1.30:7003.repl_backlog_size=1048576, 192.168.1.31:7005.connected_slaves=1, 192.168.1.30:7003.master_replid2=0000000000000000000000000000000000000000, 192.168.1.31:7005.master_repl_offset=40325, 192.168.1.30:7004.repl_backlog_histlen=40067, 192.168.1.30:7007.master_replid=bb66da8f8af5b72a46ee7aed3a6a5b6b41f4167e, 192.168.1.30:7003.connected_slaves=1, 192.168.1.31:7005.second_repl_offset=-1, 192.168.1.30:7007.slave0=ip=192.168.1.31,port=7008,state=online,offset=37380,lag=0}
2021-01-16 20:47:04.114 INFO 95185 --- [ main] per.sanchar.san.JedisPoolTest : redis Info: {192.168.1.30:7004.rdb_last_bgsave_time_sec=0, 192.168.1.30:7007.used_memory_scripts=0, 192.168.1.30:7003.atomicvar_api=atomic-builtin, 192.168.1.30:7003.maxmemory_human=0B, 192.168.1.31:7005.used_memory_peak_human=2.63M, 192.168.1.30:7003.tracking_total_prefixes=0, 192.168.1.30:7007.loading=0, 192.168.1.30:7004.pubsub_channels=0, 192.168.1.30:7007.aof_last_rewrite_time_sec=-1, 192.168.1.30:7007.used_cpu_user=17.504619, 192.168.1.31:7005.keyspace_misses=0, 192.168.1.31:7005.unexpected_error_replies=0, 192.168.1.30:7004.keyspace_hits=2, 192.168.1.30:7003.aof_rewrite_in_progress=0, 192.168.1.30:7003.redis_version=6.0.10, 192.168.1.30:7004.maxmemory_policy=noeviction, 192.168.1.30:7004.used_cpu_sys=67.222929, 192.168.1.31:7005.expired_stale_perc=0.00, 192.168.1.30:7003.aof_pending_rewrite=0, 192.168.1.30:7003.rdb_last_bgsave_time_sec=0, 192.168.1.30:7004.module_fork_in_progress=0, 192.168.1.30:7004.rdb_last_save_time=1610646811, 192.168.1.30:7007.rdb_last_bgsave_status=ok, 192.168.1.30:7004.used_memory_startup=1461912, 192.168.1.30:7004.connected_clients=1, 192.168.1.31:7005.multiplexing_api=epoll, 192.168.1.30:7004.active_defrag_hits=0, 192.168.1.30:7004.aof_base_size=93, 192.168.1.30:7007.tracking_total_items=0, 192.168.1.30:7004.expired_keys=0, 192.168.1.31:7005.rss_overhead_ratio=2.20, 192.168.1.31:7005.total_connections_received=14, 192.168.1.30:7004.maxmemory=0, 192.168.1.30:7007.used_memory_peak_human=2.70M, 192.168.1.30:7004.used_memory=2719144, 192.168.1.31:7005.rejected_connections=0, 192.168.1.30:7003.keyspace_hits=9, 192.168.1.30:7003.maxmemory_policy=noeviction, 192.168.1.30:7007.uptime_in_days=0, 192.168.1.31:7005.uptime_in_seconds=29713, 192.168.1.31:7005.sync_partial_ok=0, 192.168.1.30:7007.mem_fragmentation_bytes=10841448, 192.168.1.30:7003.allocator_frag_bytes=345848, 192.168.1.30:7007.lazyfree_pending_objects=0, 192.168.1.30:7003.aof_buffer_length=0, 192.168.1.30:7007.io_threaded_reads_processed=0, 192.168.1.30:7004.active_defrag_key_hits=0, 192.168.1.31:7005.sync_partial_err=1, 192.168.1.30:7003.aof_last_write_status=ok, 192.168.1.30:7007.maxmemory=0, 192.168.1.30:7004.tracking_clients=0, 192.168.1.30:7003.aof_last_bgrewrite_status=ok, 192.168.1.30:7004.blocked_clients=0, 192.168.1.30:7004.used_memory_peak_perc=97.11%, 192.168.1.30:7003.master_replid2=0000000000000000000000000000000000000000, 192.168.1.30:7004.repl_backlog_first_byte_offset=1, 192.168.1.31:7005.used_memory_lua=37888, 192.168.1.30:7003.used_cpu_sys_children=0.005521, 192.168.1.30:7003.rdb_last_save_time=1610647528, 192.168.1.30:7003.aof_base_size=0, 192.168.1.30:7004.lru_clock=35435, 192.168.1.30:7007.total_reads_processed=26712, 192.168.1.30:7007.active_defrag_key_misses=0, 192.168.1.31:7005.aof_current_rewrite_time_sec=-1, 192.168.1.31:7005.redis_git_sha1=00000000, 192.168.1.31:7005.aof_last_bgrewrite_status=ok, 192.168.1.30:7003.io_threads_active=0, 192.168.1.30:7007.aof_rewrite_in_progress=0, 192.168.1.30:7004.configured_hz=10, 192.168.1.30:7003.slave_expires_tracked_keys=0, 192.168.1.30:7004.expired_time_cap_reached_count=0, 192.168.1.30:7004.rejected_connections=0, 192.168.1.30:7004.aof_buffer_length=0, 192.168.1.30:7007.allocator_resident=7483392, 192.168.1.30:7007.module_fork_in_progress=0, 192.168.1.30:7004.pubsub_patterns=0, 192.168.1.31:7005.process_id=7978, 192.168.1.30:7007.os=Linux 4.18.0-240.1.1.el8_3.x86_64 x86_64, 192.168.1.31:7005.rss_overhead_bytes=6471680, 192.168.1.30:7007.aof_pending_rewrite=0, 192.168.1.30:7007.run_id=fbae47116c3eae7549a21b2903e3b43ed88b2ea3, 192.168.1.30:7004.gcc_version=8.3.1, 192.168.1.30:7003.expired_stale_perc=0.00, 192.168.1.30:7007.sync_partial_ok=0, 192.168.1.30:7007.used_memory_startup=1460872, 192.168.1.30:7004.process_id=7872, 192.168.1.30:7004.aof_last_write_status=ok, 192.168.1.30:7004.io_threaded_writes_processed=0, 192.168.1.30:7004.uptime_in_days=0, 192.168.1.30:7004.total_system_memory=2933927936, 192.168.1.31:7005.maxmemory_human=0B, 192.168.1.30:7007.executable=/root/redis-server, 192.168.1.31:7005.allocator_allocated=2793296, 192.168.1.30:7004.io_threads_active=0, 192.168.1.30:7004.used_cpu_sys_children=0.007108, 192.168.1.30:7007.used_memory_lua=37888, 192.168.1.31:7005.redis_version=6.0.10, 192.168.1.30:7004.allocator_active=3198976, 192.168.1.30:7004.instantaneous_ops_per_sec=2, 192.168.1.30:7007.rdb_bgsave_in_progress=0, 192.168.1.31:7005.aof_delayed_fsync=0, 192.168.1.30:7004.io_threaded_reads_processed=0, 192.168.1.30:7003.redis_mode=cluster, 192.168.1.30:7003.rss_overhead_ratio=2.18, 192.168.1.30:7004.slave0=ip=192.168.1.29,port=7001,state=online,offset=40067,lag=0, 192.168.1.30:7004.instantaneous_output_kbps=0.24, 192.168.1.30:7004.lazyfree_pending_objects=0, 192.168.1.30:7007.rdb_changes_since_last_save=0, 192.168.1.30:7004.rdb_last_cow_size=4472832, 192.168.1.30:7004.aof_rewrite_buffer_length=0, 192.168.1.30:7003.used_memory_scripts=0, 192.168.1.31:7005.repl_backlog_active=1, 192.168.1.30:7004.rss_overhead_bytes=6520832, 192.168.1.30:7007.rejected_connections=0, 192.168.1.30:7007.atomicvar_api=atomic-builtin, 192.168.1.31:7005.mem_clients_slaves=20512, 192.168.1.30:7003.active_defrag_misses=0, 192.168.1.30:7004.total_reads_processed=25592, 192.168.1.30:7003.used_cpu_user_children=0.002360, 192.168.1.30:7004.active_defrag_key_misses=0, 192.168.1.30:7003.allocator_active=3190784, 192.168.1.30:7003.blocked_clients=0, 192.168.1.30:7007.master_repl_offset=37380, 192.168.1.31:7005.connected_clients=1, 192.168.1.30:7003.lazyfree_pending_objects=0, 192.168.1.30:7003.instantaneous_ops_per_sec=5, 192.168.1.30:7004.repl_backlog_active=1, 192.168.1.31:7005.total_net_output_bytes=63223, 192.168.1.30:7007.maxmemory_human=0B, 192.168.1.30:7007.unexpected_error_replies=0, 192.168.1.30:7003.total_system_memory_human=2.73G, 192.168.1.30:7003.aof_pending_bio_fsync=0, 192.168.1.30:7003.redis_build_id=ac7b00adb80b403e, 192.168.1.30:7003.instantaneous_output_kbps=0.32, 192.168.1.30:7003.aof_enabled=1, 192.168.1.31:7005.os=Linux 4.18.0-240.1.1.el8_3.x86_64 x86_64, 192.168.1.31:7005.instantaneous_ops_per_sec=1, 192.168.1.30:7003.active_defrag_key_misses=0, 192.168.1.30:7004.expire_cycle_cpu_milliseconds=681, 192.168.1.31:7005.tracking_total_keys=0, 192.168.1.31:7005.total_system_memory_human=2.73G, 192.168.1.31:7005.used_memory_lua_human=37.00K, 192.168.1.30:7004.mem_not_counted_for_evict=120, 192.168.1.31:7005.instantaneous_output_kbps=0.00, 192.168.1.30:7003.rss_overhead_bytes=6410240, 192.168.1.30:7004.mem_clients_slaves=20512, 192.168.1.30:7007.total_system_memory=2933927936, 192.168.1.30:7004.aof_current_size=190, 192.168.1.30:7007.total_connections_received=11, 192.168.1.30:7004.arch_bits=64, 192.168.1.30:7004.repl_backlog_size=1048576, 192.168.1.30:7003.repl_backlog_first_byte_offset=1, 192.168.1.31:7005.mem_replication_backlog=1048576, 192.168.1.31:7005.aof_last_cow_size=0, 192.168.1.30:7004.tracking_total_keys=0, 192.168.1.30:7004.rdb_changes_since_last_save=0, 192.168.1.30:7007.total_net_output_bytes=86197, 192.168.1.30:7007.maxmemory_policy=noeviction, 192.168.1.31:7005.master_replid2=0000000000000000000000000000000000000000, 192.168.1.30:7003.used_memory_scripts_human=0B, 192.168.1.31:7005.rdb_last_bgsave_status=ok, 192.168.1.31:7005.total_commands_processed=28762, 192.168.1.30:7007.connected_slaves=1, 192.168.1.31:7005.aof_current_size=103, 192.168.1.31:7005.allocator_rss_ratio=1.71, 192.168.1.30:7003.expired_time_cap_reached_count=0, 192.168.1.30:7004.total_connections_received=13, 192.168.1.30:7003.mem_not_counted_for_evict=122, 192.168.1.31:7005.role=master, 192.168.1.30:7003.second_repl_offset=-1, 192.168.1.31:7005.used_memory_scripts_human=0B, 192.168.1.30:7007.client_recent_max_output_buffer=0, 192.168.1.31:7005.configured_hz=10, 192.168.1.30:7003.latest_fork_usec=1120, 192.168.1.30:7003.used_cpu_sys=67.421992, 192.168.1.31:7005.mem_allocator=jemalloc-5.1.0, 192.168.1.31:7005.used_memory_human=2.59M, 192.168.1.31:7005.total_net_input_bytes=1145253, 192.168.1.30:7003.mem_clients_slaves=20512, 192.168.1.30:7004.multiplexing_api=epoll, 192.168.1.30:7004.mem_replication_backlog=1048576, 192.168.1.31:7005.mem_not_counted_for_evict=130, 192.168.1.30:7004.unexpected_error_replies=0, 192.168.1.30:7003.loading=0, 192.168.1.30:7003.used_memory_peak_perc=96.38%, 192.168.1.30:7007.instantaneous_output_kbps=0.24, 192.168.1.31:7005.allocator_frag_ratio=1.13, 192.168.1.30:7004.used_cpu_user_children=0.003586, 192.168.1.30:7003.used_memory_startup=1460888, 192.168.1.30:7007.aof_rewrite_buffer_length=0, 192.168.1.30:7003.module_fork_in_progress=0, 192.168.1.30:7004.aof_last_bgrewrite_status=ok, 192.168.1.30:7003.expired_keys=0, 192.168.1.30:7003.aof_delayed_fsync=0, 192.168.1.30:7007.role=master, 192.168.1.30:7007.uptime_in_seconds=28162, 192.168.1.31:7005.allocator_resident=5390336, 192.168.1.30:7007.pubsub_channels=0, 192.168.1.31:7005.repl_backlog_histlen=40325, 192.168.1.30:7003.migrate_cached_sockets=0, 192.168.1.31:7005.gcc_version=8.3.1, 192.168.1.31:7005.used_cpu_user=19.740241, 192.168.1.30:7004.run_id=c9946d98f9493e7765062e9ba63b067d995cbd24, 192.168.1.30:7003.total_writes_processed=2957, 192.168.1.31:7005.aof_rewrite_scheduled=0, 192.168.1.30:7003.unexpected_error_replies=0, 192.168.1.31:7005.blocked_clients=0, 192.168.1.30:7004.client_recent_max_input_buffer=8, 192.168.1.31:7005.rdb_last_cow_size=2318336, 192.168.1.30:7004.used_memory_rss=14057472, 192.168.1.30:7004.sync_partial_err=1, 192.168.1.31:7005.allocator_rss_bytes=2240512, 192.168.1.30:7003.multiplexing_api=epoll, 192.168.1.30:7007.process_id=7922, 192.168.1.31:7005.active_defrag_running=0, 192.168.1.30:7004.expired_stale_perc=0.00, 192.168.1.30:7004.sync_full=1, 192.168.1.30:7004.cluster_enabled=1, 192.168.1.30:7004.tcp_port=7004, 192.168.1.31:7005.evicted_keys=0, 192.168.1.30:7003.maxmemory=0, 192.168.1.31:7005.used_memory_peak=2755576, 192.168.1.31:7005.aof_enabled=1, 192.168.1.31:7005.db0=keys=2,expires=0,avg_ttl=0, 192.168.1.30:7004.repl_backlog_histlen=40067, 192.168.1.30:7007.hz=10, 192.168.1.30:7003.uptime_in_days=0, 192.168.1.31:7005.allocator_frag_bytes=356528, 192.168.1.30:7007.mem_aof_buffer=8, 192.168.1.31:7005.redis_build_id=4202bf8dc6d1efb3, 192.168.1.31:7005.rdb_bgsave_in_progress=0, 192.168.1.30:7007.master_replid=bb66da8f8af5b72a46ee7aed3a6a5b6b41f4167e, 192.168.1.30:7007.mem_replication_backlog=1048576, 192.168.1.30:7004.rss_overhead_ratio=1.87, 192.168.1.30:7007.used_memory_lua_human=37.00K, 192.168.1.30:7004.mem_allocator=jemalloc-5.1.0, 192.168.1.30:7007.lru_clock=35435, 192.168.1.30:7003.lru_clock=35435, 192.168.1.30:7007.blocked_clients=0, 192.168.1.30:7003.module_fork_last_cow_size=0, 192.168.1.30:7003.rejected_connections=0, 192.168.1.30:7003.pubsub_channels=0, 192.168.1.30:7003.tracking_clients=0, 192.168.1.30:7007.config_file=/usr/local/redis/cluster/redis_7007.conf, 192.168.1.30:7003.process_id=7866, 192.168.1.30:7007.aof_delayed_fsync=0, 192.168.1.30:7004.keyspace_misses=0, 192.168.1.30:7003.total_reads_processed=28824, 192.168.1.31:7005.connected_slaves=1, 192.168.1.31:7005.rdb_current_bgsave_time_sec=-1, 192.168.1.31:7005.repl_backlog_size=1048576, 192.168.1.30:7003.total_system_memory=2933927936, 192.168.1.31:7005.module_fork_last_cow_size=0, 192.168.1.30:7007.aof_current_rewrite_time_sec=-1, 192.168.1.30:7003.aof_current_rewrite_time_sec=-1, 192.168.1.30:7007.evicted_keys=0, 192.168.1.30:7004.used_cpu_user=18.629607, 192.168.1.30:7003.allocator_resident=5427200, 192.168.1.30:7003.configured_hz=10, 192.168.1.30:7007.active_defrag_key_hits=0, 192.168.1.30:7007.pubsub_patterns=0, 192.168.1.30:7003.mem_allocator=jemalloc-5.1.0, 192.168.1.31:7005.used_memory_rss_human=11.31M, 192.168.1.30:7004.total_system_memory_human=2.73G, 192.168.1.31:7005.used_memory_overhead=2531080, 192.168.1.31:7005.maxmemory=0, 192.168.1.30:7004.migrate_cached_sockets=0, 192.168.1.31:7005.number_of_cached_scripts=0, 192.168.1.30:7007.connected_clients=1, 192.168.1.30:7003.used_memory_rss=11837440, 192.168.1.30:7004.total_writes_processed=5894, 192.168.1.31:7005.second_repl_offset=-1, 192.168.1.30:7007.aof_last_bgrewrite_status=ok, 192.168.1.30:7004.mem_aof_buffer=128, 192.168.1.30:7004.allocator_allocated=2894184, 192.168.1.30:7004.aof_enabled=1, 192.168.1.30:7007.total_net_input_bytes=1006612, 192.168.1.30:7007.total_commands_processed=26695, 192.168.1.30:7003.os=Linux 4.18.0-240.1.1.el8_3.x86_64 x86_64, 192.168.1.30:7003.cluster_enabled=1, 192.168.1.31:7005.hz=10, 192.168.1.30:7003.used_cpu_user=18.995400, 192.168.1.31:7005.lru_clock=35441, 192.168.1.30:7003.repl_backlog_active=1, 192.168.1.30:7007.redis_version=6.0.10, 192.168.1.30:7003.rdb_last_bgsave_status=ok, 192.168.1.31:7005.clients_in_timeout_table=0, 192.168.1.30:7007.latest_fork_usec=1643, 192.168.1.30:7003.expire_cycle_cpu_milliseconds=756, 192.168.1.30:7003.executable=/usr/local/redis/cluster/redis-server, 192.168.1.31:7005.rdb_changes_since_last_save=0, 192.168.1.30:7004.used_memory_scripts_human=0B, 192.168.1.31:7005.active_defrag_misses=0, 192.168.1.30:7003.client_recent_max_input_buffer=8, 192.168.1.31:7005.slave_expires_tracked_keys=0, 192.168.1.30:7007.aof_last_cow_size=0, 192.168.1.30:7004.second_repl_offset=4635, 192.168.1.30:7003.uptime_in_seconds=29727, 192.168.1.31:7005.mem_fragmentation_ratio=4.47, 192.168.1.30:7003.master_repl_offset=40517, 192.168.1.30:7007.active_defrag_running=0, 192.168.1.30:7003.used_memory_peak_human=2.68M, 192.168.1.31:7005.used_memory_dataset=184952, 192.168.1.31:7005.io_threaded_writes_processed=0, 192.168.1.30:7003.pubsub_patterns=0, 192.168.1.31:7005.used_memory_dataset_perc=14.75%, 192.168.1.30:7004.redis_git_dirty=0, 192.168.1.31:7005.used_memory_scripts=0, 192.168.1.30:7007.keyspace_hits=0, 192.168.1.30:7003.tracking_total_keys=0, 192.168.1.31:7005.aof_last_write_status=ok, 192.168.1.30:7007.multiplexing_api=epoll, 192.168.1.31:7005.pubsub_channels=0, 192.168.1.31:7005.used_cpu_sys_children=0.004787, 192.168.1.30:7007.expired_time_cap_reached_count=0, 192.168.1.30:7004.redis_mode=cluster, 192.168.1.30:7007.redis_git_sha1=00000000, 192.168.1.30:7007.used_memory_human=2.59M, 192.168.1.30:7007.aof_base_size=0, 192.168.1.30:7004.total_net_input_bytes=960257, 192.168.1.30:7004.uptime_in_seconds=29721, 192.168.1.30:7007.arch_bits=64, 192.168.1.31:7005.uptime_in_days=0, 192.168.1.30:7007.allocator_allocated=2791032, 192.168.1.30:7003.arch_bits=64, 192.168.1.30:7004.mem_fragmentation_ratio=5.17, 192.168.1.30:7004.total_commands_processed=25572, 192.168.1.31:7005.tcp_port=7005, 192.168.1.31:7005.aof_buffer_length=0, 192.168.1.30:7003.aof_current_size=239, 192.168.1.31:7005.tracking_total_items=0, 192.168.1.31:7005.expired_time_cap_reached_count=0, 192.168.1.30:7007.instantaneous_ops_per_sec=2, 192.168.1.30:7004.allocator_rss_ratio=2.36, 192.168.1.31:7005.client_recent_max_output_buffer=0, 192.168.1.30:7003.mem_replication_backlog=1048576, 192.168.1.30:7007.total_system_memory_human=2.73G, 192.168.1.31:7005.mem_fragmentation_bytes=9209464, 192.168.1.30:7004.evicted_keys=0, 192.168.1.30:7007.repl_backlog_active=1, 192.168.1.30:7003.total_commands_processed=28796, 192.168.1.31:7005.used_memory_rss=11862016, 192.168.1.31:7005.io_threads_active=0, 192.168.1.30:7007.mem_clients_normal=20504, 192.168.1.30:7007.tracking_clients=0, 192.168.1.30:7007.used_memory_rss_human=12.93M, 192.168.1.30:7004.rdb_last_bgsave_status=ok, 192.168.1.30:7004.atomicvar_api=atomic-builtin, 192.168.1.30:7003.rdb_bgsave_in_progress=0, 192.168.1.31:7005.tracking_total_prefixes=0, 192.168.1.30:7004.os=Linux 4.18.0-240.1.1.el8_3.x86_64 x86_64, 192.168.1.30:7007.configured_hz=10, 192.168.1.31:7005.aof_rewrite_in_progress=0, 192.168.1.31:7005.used_cpu_user_children=0.000914, 192.168.1.30:7004.redis_git_sha1=00000000, 192.168.1.30:7004.tracking_total_items=0, 192.168.1.30:7003.mem_clients_normal=20504, 192.168.1.30:7004.used_memory_peak_human=2.67M, 192.168.1.30:7004.mem_fragmentation_bytes=11339880, 192.168.1.30:7004.used_memory_peak=2800080, 192.168.1.30:7004.module_fork_last_cow_size=0, 192.168.1.31:7005.latest_fork_usec=1400, 192.168.1.30:7003.redis_git_dirty=0, 192.168.1.30:7007.used_memory_scripts_human=0B, 192.168.1.30:7007.tracking_total_keys=0, 192.168.1.30:7003.connected_clients=1, 192.168.1.31:7005.arch_bits=64, 192.168.1.30:7004.aof_delayed_fsync=0, 192.168.1.30:7004.allocator_frag_ratio=1.11, 192.168.1.30:7003.rdb_current_bgsave_time_sec=-1, 192.168.1.30:7007.number_of_cached_scripts=0, 192.168.1.30:7004.allocator_rss_bytes=4337664, 192.168.1.31:7005.aof_pending_rewrite=0, 192.168.1.30:7007.used_memory_rss=13553664, 192.168.1.30:7007.mem_not_counted_for_evict=0, 192.168.1.30:7007.expire_cycle_cpu_milliseconds=746, 192.168.1.30:7004.allocator_resident=7536640, 192.168.1.30:7004.aof_current_rewrite_time_sec=-1, 192.168.1.31:7005.used_memory_startup=1461720, 192.168.1.31:7005.pubsub_patterns=0, 192.168.1.30:7004.tracking_total_prefixes=0, 192.168.1.30:7007.sync_full=1, 192.168.1.30:7003.repl_backlog_histlen=40517, 192.168.1.30:7003.sync_partial_err=1, 192.168.1.30:7003.sync_full=1, 192.168.1.31:7005.active_defrag_key_hits=0, 192.168.1.31:7005.aof_pending_bio_fsync=0, 192.168.1.30:7004.aof_rewrite_in_progress=0, 192.168.1.30:7003.config_file=/usr/local/redis/cluster/redis_7003.conf, 192.168.1.30:7007.repl_backlog_size=1048576, 192.168.1.30:7007.used_cpu_user_children=0.000945, 192.168.1.30:7003.used_memory_peak=2810784, 192.168.1.30:7007.allocator_active=3145728, 192.168.1.30:7007.cluster_enabled=1, 192.168.1.30:7004.connected_slaves=1, 192.168.1.30:7007.allocator_rss_ratio=2.38, 192.168.1.30:7004.aof_pending_rewrite=0, 192.168.1.31:7005.master_repl_offset=40325, 192.168.1.31:7005.io_threaded_reads_processed=0, 192.168.1.30:7007.clients_in_timeout_table=0, 192.168.1.31:7005.maxmemory_policy=noeviction, 192.168.1.30:7007.aof_last_write_status=ok, 192.168.1.30:7003.aof_last_cow_size=0, 192.168.1.30:7004.loading=0, 192.168.1.30:7003.mem_aof_buffer=128, 192.168.1.30:7007.slave_expires_tracked_keys=0, 192.168.1.30:7004.used_memory_rss_human=13.41M, 192.168.1.30:7007.used_cpu_sys_children=0.003039, 192.168.1.31:7005.master_replid=077aefe0e9768f38fd0dd79fb416c5cd98379a4c, 192.168.1.30:7007.master_replid2=0000000000000000000000000000000000000000, 192.168.1.30:7003.used_memory_lua_human=37.00K, 192.168.1.30:7003.total_net_output_bytes=101624, 192.168.1.30:7007.rdb_last_save_time=1610620865, 192.168.1.30:7007.allocator_frag_ratio=1.13, 192.168.1.30:7004.allocator_frag_bytes=304792, 192.168.1.30:7004.role=master, 192.168.1.30:7007.used_memory_dataset_perc=13.03%, 192.168.1.30:7003.connected_slaves=1, 192.168.1.30:7007.active_defrag_hits=0, 192.168.1.30:7003.hz=10, 192.168.1.30:7004.slave_expires_tracked_keys=0, 192.168.1.30:7003.rdb_changes_since_last_save=4, 192.168.1.30:7007.keyspace_misses=0, 192.168.1.30:7004.rdb_bgsave_in_progress=0, 192.168.1.31:7005.used_cpu_sys=69.783998, 192.168.1.30:7007.repl_backlog_histlen=37380, 192.168.1.30:7003.allocator_allocated=2844936, 192.168.1.30:7007.tcp_port=7007, 192.168.1.30:7004.master_repl_offset=40067, 192.168.1.30:7003.used_memory_human=2.58M, 192.168.1.30:7004.aof_last_cow_size=2289664, 192.168.1.30:7007.rdb_current_bgsave_time_sec=-1, 192.168.1.30:7004.number_of_cached_scripts=0, 192.168.1.31:7005.slave0=ip=192.168.1.29,port=7002,state=online,offset=40325,lag=1, 192.168.1.30:7003.active_defrag_hits=0, 192.168.1.30:7007.tracking_total_prefixes=0, 192.168.1.31:7005.sync_full=1, 192.168.1.31:7005.tracking_clients=0, 192.168.1.30:7007.allocator_rss_bytes=4337664, 192.168.1.30:7004.sync_partial_ok=0, 192.168.1.30:7007.redis_mode=cluster, 192.168.1.30:7007.expired_stale_perc=0.00, 192.168.1.30:7003.used_memory=2708904, 192.168.1.31:7005.migrate_cached_sockets=0, 192.168.1.31:7005.expired_keys=0, 192.168.1.31:7005.total_writes_processed=2928, 192.168.1.30:7007.instantaneous_input_kbps=0.08, 192.168.1.30:7003.slave0=ip=192.168.1.31,port=7006,state=online,offset=40450,lag=0, 192.168.1.31:7005.used_memory_peak_perc=98.56%, 192.168.1.31:7005.total_system_memory=2933927936, 192.168.1.30:7003.tcp_port=7003, 192.168.1.30:7004.used_memory_lua=37888, 192.168.1.30:7007.aof_current_size=0, 192.168.1.30:7004.used_memory_lua_human=37.00K, 192.168.1.30:7007.module_fork_last_cow_size=0, 192.168.1.30:7007.client_recent_max_input_buffer=8, 192.168.1.30:7003.number_of_cached_scripts=0, 192.168.1.31:7005.redis_git_dirty=0, 192.168.1.30:7003.total_net_input_bytes=1141805, 192.168.1.30:7007.used_memory=2713768, 192.168.1.30:7007.aof_rewrite_scheduled=0, 192.168.1.30:7004.used_memory_overhead=2551704, 192.168.1.30:7004.clients_in_timeout_table=0, 192.168.1.30:7004.master_replid2=a37355021b5b210a37bdf73177dd6f96030311f9, 192.168.1.30:7003.rdb_last_cow_size=4460544, 192.168.1.30:7004.used_memory_human=2.59M, 192.168.1.30:7003.used_memory_overhead=2550680, 192.168.1.31:7005.atomicvar_api=atomic-builtin, 192.168.1.30:7007.rss_overhead_ratio=1.81, 192.168.1.30:7007.allocator_frag_bytes=354696, 192.168.1.30:7007.used_cpu_sys=63.475495, 192.168.1.31:7005.mem_clients_normal=0, 192.168.1.30:7004.aof_last_rewrite_time_sec=0, 192.168.1.31:7005.client_recent_max_input_buffer=8, 192.168.1.30:7003.keyspace_misses=2, 192.168.1.30:7007.repl_backlog_first_byte_offset=1, 192.168.1.30:7004.master_replid=d262cb91b8b147ce5a15de0b711ca9fdc5754595, 192.168.1.31:7005.lazyfree_pending_objects=0, 192.168.1.30:7007.migrate_cached_sockets=0, 192.168.1.30:7003.aof_rewrite_scheduled=0, 192.168.1.30:7003.clients_in_timeout_table=0, 192.168.1.30:7007.total_writes_processed=2704, 192.168.1.30:7004.used_memory_dataset_perc=13.32%, 192.168.1.30:7003.client_recent_max_output_buffer=0, 192.168.1.31:7005.redis_mode=cluster, 192.168.1.30:7007.aof_buffer_length=0, 192.168.1.30:7003.used_memory_dataset=158224, 192.168.1.31:7005.config_file=/usr/local/redis/cluster/redis_7005.conf, 192.168.1.31:7005.loading=0, 192.168.1.30:7004.used_memory_dataset=167440, 192.168.1.31:7005.allocator_active=3149824, 192.168.1.30:7007.expired_keys=0, 192.168.1.30:7004.maxmemory_human=0B, 192.168.1.30:7007.aof_pending_bio_fsync=0, 192.168.1.30:7003.active_defrag_running=0, 192.168.1.30:7003.gcc_version=8.3.1, 192.168.1.30:7007.redis_build_id=ac7b00adb80b403e, 192.168.1.30:7004.rdb_current_bgsave_time_sec=-1, 192.168.1.30:7004.total_net_output_bytes=179321, 192.168.1.31:7005.active_defrag_key_misses=0, 192.168.1.30:7004.used_memory_scripts=0, 192.168.1.30:7004.active_defrag_misses=0, 192.168.1.31:7005.repl_backlog_first_byte_offset=1, 192.168.1.30:7007.redis_git_dirty=0, 192.168.1.30:7007.rdb_last_bgsave_time_sec=1, 192.168.1.30:7007.io_threaded_writes_processed=0, 192.168.1.30:7003.mem_fragmentation_ratio=4.37, 192.168.1.30:7003.io_threaded_writes_processed=0, 192.168.1.30:7004.db0=keys=1,expires=0,avg_ttl=0, 192.168.1.31:7005.keyspace_hits=2, 192.168.1.31:7005.instantaneous_input_kbps=0.04, 192.168.1.30:7003.used_memory_dataset_perc=12.68%, 192.168.1.30:7007.io_threads_active=0, 192.168.1.30:7007.gcc_version=8.3.1, 192.168.1.30:7007.used_memory_overhead=2550472, 192.168.1.30:7003.role=master, 192.168.1.30:7003.aof_last_rewrite_time_sec=-1, 192.168.1.30:7004.mem_clients_normal=20504, 192.168.1.30:7003.master_replid=a236cf435d35555d623eda1057bb4be335594aca, 192.168.1.30:7003.allocator_rss_ratio=1.70, 192.168.1.30:7003.evicted_keys=0, 192.168.1.31:7005.expire_cycle_cpu_milliseconds=937, 192.168.1.30:7004.instantaneous_input_kbps=0.08, 192.168.1.31:7005.executable=/usr/local/redis/cluster/redis-server, 192.168.1.30:7003.repl_backlog_size=1048576, 192.168.1.30:7003.redis_git_sha1=00000000, 192.168.1.30:7007.rss_overhead_bytes=6070272, 192.168.1.30:7007.sync_partial_err=1, 192.168.1.30:7003.sync_partial_ok=0, 192.168.1.31:7005.total_reads_processed=28788, 192.168.1.30:7004.hz=10, 192.168.1.30:7004.executable=/usr/local/redis/cluster/redis-server, 192.168.1.31:7005.mem_aof_buffer=160, 192.168.1.30:7003.aof_rewrite_buffer_length=0, 192.168.1.30:7007.rdb_last_cow_size=2338816, 192.168.1.30:7004.aof_rewrite_scheduled=0, 192.168.1.30:7007.used_memory_peak=2836088, 192.168.1.31:7005.aof_last_rewrite_time_sec=-1, 192.168.1.31:7005.aof_base_size=0, 192.168.1.30:7003.total_connections_received=17, 192.168.1.30:7003.used_memory_lua=37888, 192.168.1.30:7003.instantaneous_input_kbps=0.18, 192.168.1.30:7004.active_defrag_running=0, 192.168.1.30:7003.active_defrag_key_hits=0, 192.168.1.30:7007.aof_enabled=1, 192.168.1.31:7005.aof_rewrite_buffer_length=0, 192.168.1.31:7005.cluster_enabled=1, 192.168.1.30:7004.latest_fork_usec=2842, 192.168.1.30:7007.slave0=ip=192.168.1.31,port=7008,state=online,offset=37380,lag=0, 192.168.1.30:7004.redis_build_id=ac7b00adb80b403e, 192.168.1.30:7007.second_repl_offset=-1, 192.168.1.30:7004.redis_version=6.0.10, 192.168.1.30:7004.config_file=/usr/local/redis/cluster/redis_7004.conf, 192.168.1.30:7007.active_defrag_misses=0, 192.168.1.30:7007.mem_allocator=jemalloc-5.1.0, 192.168.1.31:7005.run_id=1a735b585bc2c852e26b69da2a81cfc1da691756, 192.168.1.31:7005.used_memory=2716032, 192.168.1.30:7003.db0=keys=1,expires=0,avg_ttl=0, 192.168.1.30:7003.io_threaded_reads_processed=0, 192.168.1.31:7005.rdb_last_save_time=1610619663, 192.168.1.30:7003.tracking_total_items=0, 192.168.1.30:7003.mem_fragmentation_bytes=9130088, 192.168.1.30:7004.client_recent_max_output_buffer=0, 192.168.1.31:7005.module_fork_in_progress=0, 192.168.1.30:7003.used_memory_rss_human=11.29M, 192.168.1.31:7005.active_defrag_hits=0, 192.168.1.30:7007.mem_clients_slaves=20512, 192.168.1.30:7007.used_memory_peak_perc=95.69%, 192.168.1.31:7005.rdb_last_bgsave_time_sec=0, 192.168.1.30:7007.used_memory_dataset=163296, 192.168.1.30:7004.aof_pending_bio_fsync=0, 192.168.1.30:7003.run_id=5f73ddc0ed3b70b9d2f5f83550bb0a5924347af4, 192.168.1.30:7003.allocator_rss_bytes=2236416, 192.168.1.30:7007.mem_fragmentation_ratio=5.00, 192.168.1.30:7003.allocator_frag_ratio=1.12}
更多推荐
所有评论(0)