CentOS6シングルノードにRedisSentinelをインストールする

Redis Sentinelモードの概要#

Redis-Sentinelは、公式に推奨される高可用性ソリューションです。[redis](https://cloud.tencent.com/product/crs?from=10680)がマスタースレーブの高可用性ソリューションを実行しているときに、マスターがダウンした場合、redis自体(およびそのクライアントの多く)は自動処理を実現していません。アクティブ/スタンバイ切り替え、およびredis-sentinel自体は独立したプロセスであり、redisクラスターと通信してredisクラスターを監視できる他のマシンに展開できます。

1、 時々、redisが期待どおりに実行されているかどうかを監視します。
2、 redisノードが実行中であることが判明した場合、別のプロセス(クライアントなど)に通知できます。
3、 自動的に切り替えることができます。マスターノードが使用できない場合、マスターの複数のスレーブ(複数のスレーブがある場合)の1つを新しいマスターとして選択でき、他のスレーブノードはそれに昇格するマスターのアドレスを変更します。マスターのスレーブの新しいアドレス。
4、 歩哨はクライアントにサービス検出を提供します。クライアントは歩哨に接続します。歩哨は現在のマスターのアドレスを提供してからサービスを提供します。スイッチがある場合、つまりマスターが電話を切ると、歩哨はクライアントに新しいアドレスを提供します。

Redis Sentinelのインストール#

192.168.0.106 CentOS6.9

Redisをインストールする#

参照:[http://blog.csdn.net/wh211212/article/details/52817923](http://blog.csdn.net/wh211212/article/details/52817923)

RedisSentinelのCentOS6シングルノードインストール##

virsh attach-disk kvm-6 /dev/vg_shkvm3/kvm-6-data vdb –driver qemu –mode shareable

wget http://download.redis.io/releases/redis-3.2.8.tar.gz -P /usr/local/src
tar xvf redis-3.2.8.tar.gz -C /usr/local/
cd /usr/local/
ln -sv redis-3.2.8 redis
echo 512>/proc/sys/net/core/somaxconn
sysctl vm.overcommit_memory=1
yum groupinstall -y "Development Tools"
yum -y install tcl #テストエラーを防ぐためにtcl依存関係をインストールします

解決:
1 、シングルコアのみでmakeテストを実行します。
taskset -c 1 sudo make test
2 、tests / Integration /replication-psync.tclファイルを変更します。
vi tests/integration/replication-psync.tcl
エラーに対応するコードのafterの後の番号を100から500に変更します。個人的には、このパラメータは待機するミリ秒数のようだと思います。

cd redis && make && make test
mkdir -pv /data/redis-sentinel/{9000,9001,9002}
cp src/{redis-server,redis-sentinel}/data/redis-sentinel/9000/
cp src/{redis-server,redis-sentinel}/data/redis-sentinel/9001/
cp src/{redis-server,redis-sentinel}/data/redis-sentinel/9002/
cp redis.conf sentinel.conf /data/redis-sentinel/9000/
cp redis.conf sentinel.conf /data/redis-sentinel/9001/
cp redis.conf sentinel.conf /data/redis-sentinel/9002/
# vim /data/redis-sentinel/9000/redis.conf
bind 192.168.0.106protected-mode no
port 9000
daemonize yes
appendonly yes
# \ cp /data/redis-sentinel/9000/redis.conf /data/redis-sentinel/9001/redis.conf
# \ cp /data/redis-sentinel/9000/redis.conf /data/redis-sentinel/9002/redis.conf

sed -i 's/9000/9001/g'/data/redis-sentinel/9001/redis.conf
# vim /data/redis-sentinel/9001/redis.conf
port 9001
slaveof 192.168.0.1069000

# vim /data/redis-sentinel/9002/redis.conf
sed -i 's/9000/9002/g'/data/redis-sentinel/9002/redis.conf
port 9002
slaveof 192.168.0.1069000
# cd /data/redis-sentinel/9000/
# . /redis-server redis.conf

# cd ../9001/
# . /redis-server redis.conf

# cd ../9002/
# . /redis-server redis.conf

# ps -ef | grep redis
root      42181017:03?00:00:00./redis-server 192.168.0.106:9000
root      42381017:03?00:00:00./redis-server 192.168.0.106:9001
root      42521017:03?00:00:00./redis-server 192.168.0.106:9002
# /usr/local/redis/src/redis-cli -h 192.168.0.106-p 9000192.168.0.106:9000>set name aniu
OK
192.168.0.106:9000> get name
" aniu"192.168.0.106:9000> info replication
# Replication
192.168.0.106:9000> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.0.106,port=9001,state=online,offset=1121,lag=0
slave1:ip=192.168.0.106,port=9002,state=online,offset=1121,lag=1
master_repl_offset:1121
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:1120

歩哨を配備する##

# cd /data/redis-sentinel/9000
# vim sentinel.conf
protected-mode no
port 29000
daemonize yes
dir /data/redis-sentinel/9000/logs
sentinel monitor mymaster 192.168.0.10690002
# mkdir logs
# . /redis-sentinel sentinel.conf

# \ cp sentinel.conf ../9001/
# \ cp sentinel.conf ../9002/
# cd ../9001/
port 29001
dir "/data/redis-sentinel/9001/logs"
# mkdir logs
# . /redis-sentinel sentinel.conf

- 歩哨3を配備する

# cd ../9002/
# vim sentinel.conf
port 29002
dir "/data/redis-sentinel/9002/logs"
# mkdir logs
# . /redis-sentinel sentinel.conf
# /usr/local/redis/src/redis-cli -h 192.168.0.106-p 29000[root@sh-kvm-3-69002]# /usr/local/redis/src/redis-cli -h 192.168.0.106-p 29000192.168.0.106:29000> sentinel masters
1)1)" name"2)"mymaster"3)"ip"4)"192.168.0.106"5)"port"6)"9000"7)"runid"8)"03427a4cd4f22401f55d07952424ba4b31144b57"9)"flags"10)"master"11)"link-pending-commands"12)"0"13)"link-refcount"14)"1"15)"last-ping-sent"16)"0"17)"last-ok-ping-reply"18)"542"19)"last-ping-reply"20)"542"21)"down-after-milliseconds"22)"30000"23)"info-refresh"24)"3335"25)"role-reported"26)"master"27)"role-reported-time"28)"515500"29)"config-epoch"30)"0"31)"num-slaves"32)"2"33)"num-other-sentinels"34)"0"35)"quorum"36)"2"37)"failover-timeout"38)"180000"39)"parallel-syncs"40)"1"192.168.0.106:29000> sentinel slaves mymaster
1)1)" name"2)"192.168.0.106:9002"3)"ip"4)"192.168.0.106"5)"port"6)"9002"7)"runid"8)"42ec153d250bf9aff05765346e0fdc2ee33d1257"9)"flags"10)"slave"11)"link-pending-commands"12)"0"13)"link-refcount"14)"1"15)"last-ping-sent"16)"0"17)"last-ok-ping-reply"18)"510"19)"last-ping-reply"20)"510"21)"down-after-milliseconds"22)"30000"23)"info-refresh"24)"6271"25)"role-reported"26)"slave"27)"role-reported-time"28)"548469"29)"master-link-down-time"30)"0"31)"master-link-status"32)"ok"33)"master-host"34)"192.168.0.106"35)"master-port"36)"9000"37)"slave-priority"38)"100"39)"slave-repl-offset"40)"57920"2)1)"name"2)"192.168.0.106:9001"3)"ip"4)"192.168.0.106"5)"port"6)"9001"7)"runid"8)"afdc283bae3f48fb0ceb6f8dd9af8248928406ec"9)"flags"10)"slave"11)"link-pending-commands"12)"0"13)"link-refcount"14)"1"15)"last-ping-sent"16)"0"17)"last-ok-ping-reply"18)"510"19)"last-ping-reply"20)"510"21)"down-after-milliseconds"22)"30000"23)"info-refresh"24)"6271"25)"role-reported"26)"slave"27)"role-reported-time"28)"548486"29)"master-link-down-time"30)"0"31)"master-link-status"32)"ok"33)"master-host"34)"192.168.0.106"35)"master-port"36)"9000"37)"slave-priority"38)"100"39)"slave-repl-offset"40)"57920"

jedisで歩哨を使用する##

一般的なセキュリティ設定を再実行します##

requirepass yourpassword
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""

Recommended Posts

CentOS6シングルノードにRedisSentinelをインストールする
Centos7にDockerをインストールする
UbuntuにRedisをインストールする
Centos7.4はLNMPをインストールします
Centos7にJavaをインストールする
Nodejsはcentos7にインストールされます
CentOS8にFFmpegをインストールします
CentOS7にRabbitMQをインストールします
CentosにNode.jsをインストールします
Mavenはcentos7にインストールします
CentOS7にMongoDBをインストールします
CentOS8にSurelogをインストールする
CentOS7にredis5.0をインストールします
centos7へのOpenjdkのインストール
Jenkinsをcentos7にインストールします
CentOS7インストールRedis5.0.8オリジナル
セントスにRabbitMQをインストールする
CentOS7にRabbitMQをインストールします
centos6.5にDockerをインストールします
セントスにオラクルをインストールする
Centos7にElasticsearch6をインストールします
CentOS7にRabbitMQをインストールします
CentOS8にRedisをインストールして構成する方法
mysqlをcentosにオンラインでインストールする
CentOS7にElasticSearch7.xをインストールします
LinuxCentos7インストールredisチュートリアル
LinuxCentosにMySQL8.0.16をインストールします
Centos7にdockertransferをインストールします
Centosシステムにdockerをインストールします
セントスにEPELリポジトリをインストールする
CentOS 7 Redis5.0.8センチネルモード構成
CentOS7に基づくZabbix3.4をインストールします
centosサーバーにvirtualboxをインストールする
CentOS7にNginxサーバーをインストールします
centOS7にjdk1.8をインストールする方法
CentOS8にMySQLをインストールする方法
CentOS7にrpmでJDK8をインストールします
CentOS8にMemcachedをインストールする方法
CentOS7にMATEまたはXFCEをインストールします
CentOS8にRをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
CentOS8にTensorFlowをインストールする方法
[redisの概要] Centosの下にredisをインストールします
CentOS8にTeamViewerをインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
CentOS8にGoをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
CentOS8にNginxをインストールする方法
CentOS7にAsteriskをインストールする方法
CentOS8にJenkinsをインストールする方法
Linux CentOS7(Windows)にMySQLをインストールする
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法