国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Redis - Redis Sentinel實現哨兵模式搭建小結

Redis Sentinel實現哨兵模式搭建小結

2019-11-20 22:02NickBoyer Redis

這篇文章主要介紹了Redis Sentinel實現哨兵模式搭建小結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Redis哨兵模式,用現在流行的話可以說就是一個“哨兵機器人”,給“哨兵機器人”進行相應的配置之后,這個"機器人"可以7*24小時工作,它能能夠自動幫助你做一些事情,如監控,提醒,自動處理故障等。

Redis-sentinel簡介

Redis-sentinel是Redis的作者antirez,因為Redis集群的被各大公司使用,每個公司要寫自己的集群管理工具,于是antirez花了幾個星期寫出了Redis-sentinel。

Redis 的 Sentinel 系統用于管理多個 Redis 服務器(instance),Redis 的 Sentinel 為Redis提供了高可用性。使用哨兵模式創建一個可以不用人為干預而應對各種故障的Redis部署。

該系統執行以下三個任務:

  • 監控(Monitoring):Sentinel會不斷地檢查你的主服務器和從服務器是否允許正常。
  • 提醒(Notification):當被監控的某個Redis服務器出現問題時,Sentinel可以通過API向管理員或者其他應用程序發送通知。
  • 自動故障遷移(Automatic failover): (1)當一個主服務器不能正常工作時,Sentinel會開始一次自動故障遷移操作,他會將失效主服務器的其中一個從服務器升級為新的主服務器,并讓失效主服務器的其他從服務器改為復制新的主服務器;(2)客戶端試圖連接失敗的主服務器時,集群也會向客服端返回新主服務器的地址,是的集群可以使用新主服務器代替失效服務器。

sentinel的分布式特性

Redis Sentinel 是一個分布式系統, 你可以在一個架構中運行多個 Sentinel 進程(progress), 這些進程使用流言協議(gossip protocols)來接收關于主服務器是否下線的信息, 并使用投票協議(agreement protocols)來決定是否執行自動故障遷移, 以及選擇哪個從服務器作為新的主服務器。

單個sentinel進程來監控redis集群是不可靠的,當sentinel進程宕掉后(sentinel本身也有單點問題,single-point-of-failure)整個集群系統將無法按照預期的方式運行。所以有必要將sentinel集群,這樣有幾個好處:

  • 有一些sentinel進程宕掉了,依然可以進行redis集群的主備切換;
  • 如果只有一個sentinel進程,如果這個進程運行出錯,或者是網絡堵塞,那么將無法實現redis集群的主備切換(單點問題);
  • 如果有多個sentinel,redis的客戶端可以隨意地連接任意一個sentinel來獲得關于redis集群中的信息

一個健壯的部署至少需要三個哨兵實例。

三個哨兵實例應該放置在客戶使用獨立方式確認故障的計算機或虛擬機中。例如不同的物理機或不同可用區域的虛擬機。【本次講解是一個機器上進行搭建,和多級是一個道理

背景

最近項目需求,接觸到了Redis的搭建,簡單記錄下搭建過程中遇到的坑

總體配置

?
1
2
3
4
5
6
192.168.1.100:6379 -> master
192.168.1.101:6379 -> slave
192.168.1.102:6379 -> slave
192.168.1.100:26379 -> sentinel
192.168.1.101:26379 -> sentinel
192.168.1.102:26379 -> sentinel

搭建步驟

1.安裝redis

?
1
2
3
4
5
6
7
8
9
10
11
12
# 解壓
tar -xvf /usr/local/redis-3.2.11.tar.gz
 
mkdir -p /usr/local/redis/bin
 
cp /usr/local/redis/src/{redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-sentinel,redis-server,redis-trib.rb} /usr/local/redis/bin
 
mkdir -p /u01/redis/{6379/{log,data,pid,conf},26379/{log,data,pid,conf}
 
# 添加環境變量
echo "export PATH=/usr/local/redis/bin:$PATH" >> /etc/profile
source /etc/profile

2.redis-6379配置

redis節點配置基本如下,把如下配置分別cp到三臺虛擬機的/u01/redis/6379/conf/redis_6379.conf

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
bind 0.0.0.0
protected-mode no
daemonize yes
pidfile "/u01/redis/6379/pid/redis_6379.pid"
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/u01/redis/6379/log/redis_6379.log"
databases 16
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/u01/redis/6379/data"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
min-slaves-to-write 1
min-slaves-max-lag 10
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512

啟動服務

?
1
2
# 在三臺虛擬機上分別執行
redis-server /u01/redis/6379/conf/redis_6379.conf

建立主從關系

?
1
2
3
4
5
# 在192.168.1.101
redis-cli -p 6379 SLAVEOF 192.168.1.100 6379
 
# 在192.168.1.102
redis-cli -p 6379 SLAVEOF 192.168.1.100 6379

查看Replication

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
192.168.1.101:6379> info replication
# Replication
role:master
connected_slaves:2
min_slaves_good_slaves:2
slave0:ip=192.168.1.102,port=6379,state=online,offset=9577826,lag=1
slave1:ip=192.168.1.103,port=6379,state=online,offset=9577965,lag=0
master_repl_offset:9577965
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:8529390
repl_backlog_histlen:1048576
 
192.168.1.102:6379> info replication
# Replication
role:slave
master_host:192.168.1.101
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:9600220
slave_priority:100
slave_read_only:1
connected_slaves:0
min_slaves_good_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
 
192.168.1.103:6379> info replication
# Replication
role:slave
master_host:192.168.1.101
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:9612675
slave_priority:100
slave_read_only:1
connected_slaves:0
min_slaves_good_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

3.sentinel-6379配置

sentinel節點配置基本如下,把如下配置分別cp到三臺虛擬機的/u01/redis/26379/conf/sentinel_26379.conf

sentinel monitor mymaster 后監控的是redis中的master節點,也就是192.168.1.100,所以這個文件在三臺機器上是相同的

?
1
2
3
4
5
6
7
port 26379
bind 0.0.0.0
daemonize yes
protected-mode no
dir "/u01/redis/26379/tmp"
logfile "/u01/redis/26379/log/sentinel_26379.log"
sentinel monitor mymaster 192.168.1.100 6379 1

等待啟動完畢后觀察/u01/redis/26379/conf/sentinel_26379.conf文件變化

查看sentinel狀態用info sentinel

?
1
2
3
4
5
6
7
8
9
redis-cli -h 192.168.1.100 -p 26379 info sentinel
 
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=zhuanche01,status=ok,address=192.168.1.100:6379,slaves=2,sentinels=3

總結

我搭建的時候遇到了192.168.1.101、192.168.1.102上的sentinel啟動后一段時間出錯的問題,后來發現是沒有監控master
再就是出問題了多看log

來年要多寫筆記,年紀大了,記憶力越來越差!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000017531280

延伸 · 閱讀

精彩推薦
  • Redisredis實現排行榜功能

    redis實現排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實現排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • RedisRedis如何實現數據庫讀寫分離詳解

    Redis如何實現數據庫讀寫分離詳解

    Redis的主從架構,能幫助我們實現讀多,寫少的情況,下面這篇文章主要給大家介紹了關于Redis如何實現數據庫讀寫分離的相關資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redis詳解Redis復制原理

    詳解Redis復制原理

    與大多數db一樣,Redis也提供了復制機制,以滿足故障恢復和負載均衡等需求。復制也是Redis高可用的基礎,哨兵和集群都是建立在復制基礎上實現高可用的...

    李留廣10222021-08-09
  • RedisRedis的配置、啟動、操作和關閉方法

    Redis的配置、啟動、操作和關閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具...

    一線碼農5812019-11-18
  • RedisRedis全量復制與部分復制示例詳解

    Redis全量復制與部分復制示例詳解

    這篇文章主要給大家介紹了關于Redis全量復制與部分復制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis爬蟲具有一定的參考學習...

    豆子先生5052019-11-27
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • RedisRedis 事務知識點相關總結

    Redis 事務知識點相關總結

    這篇文章主要介紹了Redis 事務相關總結,幫助大家更好的理解和學習使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
主站蜘蛛池模板: 成人国产精品久久久 | 天堂资源最新在线 | 中文字幕av亚洲精品一部二部 | 亚洲a精品| 一区二区三区视频免费 | 精品中文字幕在线 | 国产91短视频| 亚洲免费中文字幕 | 日本中文字幕在线观看 | 日韩国产一区二区三区 | 国模爱爱| 亚洲一区二区三区精品动漫 | 日日夜夜精品国产 | 精品美女一区 | 国产在线精品一区二区三区 | 色8888www视频在线观看 | 中文字幕人成乱码在线观看 | 青青草国产精品 | 国产一级纯肉体一级毛片 | 国产精品日韩在线观看 | 国产一区二区黑人欧美xxxx | 成人a视频片观看免费 | 久久综合久久久 | 亚洲国产成人av好男人在线观看 | www.中文字幕.com| 日日精品 | 天天草夜夜 | 亚洲一区二区三区在线免费观看 | 久久精品一区二区三区四区 | 精品在线一区 | 少妇精品久久久久久久久久 | 亚洲第一se情网站 | 日韩a电影 | av网址在线播放 | 一区二区精品 | 久久久国产精品久久久 | 日韩美女av在线 | 毛片com| 久久亚洲国产精品日日av夜夜 | 国产美女一区二区 | 欧美一区二区三区 |