Redis(二十六):Sentinel——Redis的哨兵模式原理(二)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 服务器状态

  • 客户端状态

  • 内存

  • 持久化信息

  • 网络连接

  • 主从复制

  • CPU

  • 集群

  • 键空间

Server(服务器状态)

redis_version:5.0.3

redis_git_sha1:00000000

redis_git_dirty:0

redis_build_id:1d2d4f865a9683e0

redis_mode:standalone

os:Linux 3.10.0-1160.11.1.el7.x86_64 x86_64

arch_bits:64

multiplexing_api:epoll

atomicvar_api:atomic-builtin

gcc_version:4.8.5

process_id:15289

run_id:e6f6d7d669687494a5f884c215edf0ab7e2dcb37

tcp_port:6379

uptime_in_seconds:2761007

uptime_in_days:31

hz:10

configured_hz:10

lru_clock:9949349

executable:/usr/local/redis/bin/./redis-server

config_file:/usr/local/redis/bin/redis.conf

Clients(客户端状态)

connected_clients:6

client_recent_max_input_buffer:2

client_recent_max_output_buffer:0

blocked_clients:0

Memory(内存)

used_memory:2070808

used_memory_human:1.97M

used_memory_rss:3977216

used_memory_rss_human:3.79M

used_memory_peak:2111768

used_memory_peak_human:2.01M

used_memory_peak_perc:98.06%

used_memory_overhead:2023990

used_memory_startup:790992

used_memory_dataset:46818

used_memory_dataset_perc:3.66%

allocator_allocated:2111384

allocator_active:2404352

allocator_resident:4792320

total_system_memory:1818816512

total_system_memory_human:1.69G

used_memory_lua:40960

used_memory_lua_human:40.00K

used_memory_scripts:160

used_memory_scripts_human:160B

number_of_cached_scripts:1

maxmemory:0

maxmemory_human:0B

maxmemory_policy:noeviction

allocator_frag_ratio:1.14

allocator_frag_bytes:292968

allocator_rss_ratio:1.99

allocator_rss_bytes:2387968

rss_overhead_ratio:0.83

rss_overhead_bytes:-815104

mem_fragmentation_ratio:1.92

mem_fragmentation_bytes:1907704

mem_not_counted_for_evict:0

mem_replication_backlog:1048576

mem_clients_slaves:16922

mem_clients_normal:167076

mem_aof_buffer:0

mem_allocator:jemalloc-5.1.0

active_defrag_running:0

lazyfree_pending_objects:0

Persistence(持久化的)

loading:0

rdb_changes_since_last_save:0

rdb_bgsave_in_progress:0

rdb_last_save_time:1620546361

rdb_last_bgsave_status:ok

rdb_last_bgsave_time_sec:0

rdb_current_bgsave_time_sec:-1

rdb_last_cow_size:421888

aof_enabled:0

aof_rewrite_in_progress:0

aof_rewrite_scheduled:0

aof_last_rewrite_time_sec:-1

aof_current_rewrite_time_sec:-1

aof_last_bgrewrite_status:ok

aof_last_write_status:ok

aof_last_cow_size:0

Stats(网络连接)

total_connections_received:7802

total_commands_processed:1411392

instantaneous_ops_per_sec:3

total_net_input_bytes:64898161

total_net_output_bytes:188209599

instantaneous_input_kbps:0.16

instantaneous_output_kbps:0.27

rejected_connections:0

sync_full:3

sync_partial_ok:0

sync_partial_err:3

expired_keys:2

expired_stale_perc:0.00

expired_time_cap_reached_count:0

evicted_keys:0

keyspace_hits:48

keyspace_misses:11

pubsub_channels:1

pubsub_patterns:0

latest_fork_usec:297

migrate_cached_sockets:0

slave_expires_tracked_keys:0

active_defrag_hits:0

active_defrag_misses:0

active_defrag_key_hits:0

active_defrag_key_misses:0

Replication(主从复制)

role:master

connected_slaves:1

slave0:ip=47.119.112.252,port=8001,state=online,offset=24157802,lag=1

master_replid:176fc18fdbcafe215f5d873b34aeb00970550820

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:24157802

second_repl_offset:-1

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:23109227

repl_backlog_histlen:1048576

CPU(硬件CPU的)

used_cpu_sys:1423.376155

used_cpu_user:1888.797539

used_cpu_sys_children:0.058237

used_cpu_user_children:0.043167

Cluster(集群)

cluster_enabled:0

Keyspace(键空间,有5个键值对)

db0:keys=5,expires=0,avg_ttl=0

Sentinel通过分析主服务器返回的INFO命令回复,Sentinel可以获取以下两方面的信息

  • 获取主服务器状态,比如run_id、role

  • 另一方面可以看获得服务器的复制信息,从那里可以获取所有从服务器的信息,这样Sentinel就可以根据这些信息去找到从服务器

在这里插入图片描述

获取了主服务器信息之后,Sentinel会对自己的master属性里面的主服务器实例结构(SentinelRedisInstance)进行修改(上一篇提到过,Sentinel会维持自己的一个SentinelState状态,里面的master属性是会记录主服务器、其余哨兵或者从服务器的实例结构的),例如主服务器重启(不超过30S重启完成,不会认定为主观下线),runid是会发生变化的,Sentinel会根据INFO返回的信息进行变换

而至于主服务器返回的从服务器信息,则会被用于更新主服务器实例结构(SentinelRedisInstance)的slaves字典,该字典记录了主服务器属下从服务器的名单

对于该从服务器字典

本次面试答案,以及收集到的大厂必问面试题分享:

字节跳动超高难度三面java程序员面经,大厂的面试都这么变态吗?

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
,runid是会发生变化的,Sentinel会根据INFO返回的信息进行变换**。

而至于主服务器返回的从服务器信息,则会被用于更新主服务器实例结构(SentinelRedisInstance)的slaves字典,该字典记录了主服务器属下从服务器的名单

对于该从服务器字典

本次面试答案,以及收集到的大厂必问面试题分享:

[外链图片转存中…(img-bPQr5g1d-1714650878637)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值