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

  • 服务器状态

  • 客户端状态

  • 内存

  • 持久化信息

  • 网络连接

  • 主从复制

  • 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字典,该字典记录了主服务器属下从服务器的名单

对于该从服务器字典

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

部分内容截图:


《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

[外链图片转存中…(img-sYpm5pvs-1713281067769)]

部分内容截图:

[外链图片转存中…(img-IdOilXY7-1713281067769)]

[外链图片转存中…(img-aPPdlgp7-1713281067769)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值