RedisクラスタのSentineを遊ぶ
Redis , , , 。 ,master , slave , 。 Redis , , 3 , , , 。 ,Redis :Redis Sentinel
Redis Sentinel 3 5 , , 。 Redis 。 ,Sentinel 。 , Redis 。
Sentinel master, , info master 。Sentinel hello ( Sentinel ip、 id ) Sentinel 。
Sentinel Sentinel hello 。
Sentinel ping , , 。
Sentinel failover , , (quorum)Sentinel ,master ODOWN 。 master。
Sentinel master : , ; , , ; , ID 。
Sentinel , master (config-epoch), failover , , Sentinel, Sentinel master 。
Python , Sentinel
1from redis.sentinel import Sentinel23if name == 'main':4 sentinel = Sentinel(['localhost', 26379], socket_timeout=0.1)5 print(sentinel.discover_master('mymaster'))6 print(sentinel.discover_slaves('mymaster'))7 master = sentinel.master_for('mymaster', socket_timeout=0.1)8 slave = sentinel.slave_for('mymaster', socket_timeout=0.1)9 master.set('follow', 'Jackeyzhe2018')10 follow = slave.get('follow')11 print(follow)master_forとslave_forメソッドは、接続プールから1つの接続を取り出して使用し、アドレスから複数ある場合はポーリングメソッドを使用します.
redis , ? redis-py 。
画像の説明(最大50文字)
画像の説明(最大50文字)
,redis , get_master_address 。get_master_address , , 。 , , 。
, Sentinel , redis-py 。 ReadOnlyError , , 。 , , , , 。
Sentinel , , Sentinel 。
redis
redis , redis redis.conf 3 。 redis6379.conf,redis6380.conf,redis6381.conf。
redis6381.conf
1 bind 127.0.0.12 port 63813 logfile"6381.log"4 dbfilename"dump-63381.rdb"redis 6379.confでの変更
1bind 127.0.0.12port 63793logfile "6379.log"4dbfilename "dump-6379.rdb"5slaveof 127.0.0.1 6381redis6380.confの修正はredis 6379を参照する.conf.変更が完了したら、3つのインスタンスをそれぞれ起動します.私たちが望んでいるredis主従環境を構築しました.
画像の説明(最大50文字)
master ,
画像の説明(最大50文字)
, Sentinel 。 。 3 sentinel.conf , sentinel-26379.conf,sentinel-26380.conf sentinel-26381.conf。
sentinel-26379.conf
1port 26379 2daemonize yes 3logfile "26379.log"4dir/home/xxx/redis/data 5sentinel monitor mymaster 127.0.0.1 6381 26sentinel down-after-milliseconds mymaster 30000 7sentinel parallel-syncs mymaster 1 8sentinel failover-timeout mymaster 180000sentinel-26380.confとsentinel-26381.confの内容は上記と類似している.構成が完了したら、コマンドredis-sentinelを使用して3つのsentinelインスタンスを起動します.
画像の説明(最大50文字)
, redis-cli 26379 , sentinel 。
画像の説明(最大50文字)
3 redis 。 , 。
kill master , sentinel , sentinel master。
画像の説明(最大50文字)
sentinel 。
,6380 master。
, Redis 。