redis哨兵模式+密码认证集群搭建

今天介绍下redis哨兵模式的集群模式,并且密码认证登录。sentinel哨兵模式,顾名思义,就类似于一个哨兵。每个sentinel进程会master,slave定期发送消息,来确定其是否活着。如果发现master掉线,就会从slave中选取一台提升为master,自动修改相关配置。下面是配置过程。

1.安装redis、redis-sentinel。使用yum安装即可,首先安装epel源,epel-release之后安装redis即可。安装redis、redis-sentinel都直接安装redis即可。启动服务并设置成开机自启。

yum -y install epel-release

yum -y install redis

2.两个redis修改redis的配置文件,/etc/redis.conf。设置服务的ip、端口、数据库文件的位置。该文件其他参数配置参照末尾示例。

bind 172.16.51.141

port 6379

dbfilename "dump.rdb"

dir "/opt/webapps/redis"

之后修改/etc/systemd/system/redis.service.d/limit.conf 配置文件,设置最大文件限制。

[Service]

LimitNOFILE=65535

3.配置redis-sentienl文件。设置redis主是谁,日志位置。这里要说一下的是,这个文件你一开始设置完成后,是会随着主从的切换来变化的。

dir "/opt/webapps/redis"

logfile "/var/log/redis/sentinel.log"

sentinel myid e85b094ccd8da12305652c84aa9cdbdd0a0caec8

sentinel monitor mymaster 172.16.51.141 6379 1

sentinel down-after-milliseconds mymaster 15000

sentinel failover-timeout mymaster 10000

上面配置完成后,就可以启动redis、redis-sentienl服务了。

4.在一台主机上使用slaveof指定主从,之后使用info命令查看主从信息。查看key的数量,两个redis的key的数量应该是一致的。

slaveof   ip  port

    info

redis哨兵模式+密码认证集群搭建_第1张图片

redis哨兵模式+密码认证集群搭建_第2张图片

5.到这里,主从就配置好了,因为没有密码认证会不安全,这里我们加上密码认证。先介绍一下密码认证的两个配置。主要是两个参数:

requirepass:外面服务、客户端来连接redis的密码。

masterauth:redis从去连接redis主使用的密码。这个意思是说,如果你在主上设置了requirepass参数,你就需要再从上设置masterauth参数,并和主密码指定成一样的。这样从才能继续去同步主的数据。

并且,如果你是哨兵模式,还要在/etc/redis-sentinel.conf添加下面一行配置,这里lenovo20!&是那个配置的密码,你可以改成你的密码。否则,哨兵会认为redis主机失联。

sentinel auth-pass mymaster lenovo20!&

下面介绍下,如何添加这个密码。对于redis来说,有两种方式:

一种是在/etc/redis.conf添加下面2个字段,之后重启redis。两个redis主从密码要设置的一样。

requirepass "lenovo20!&"

masterauth "lenovo20!&"

另外一种是登录到redis数据库里面,设置密码,这个不用重启服务会立即生效,不过重启服务之后会失效。如果想永久生效,需要继续执行一条命令 config rewrite 。

config set masterauth "lenovo20!&"

config set requirepass "lenovo20!&"

config rewrite

你执行上面命令,会发现马上生效了。这时你输入其他命令会报错,这时候你要输入密码来证明你的身份。

对于redis-sentinel,修改cat /etc/redis-sentinel.conf文件,增加下面字段。之后重启服务。

sentinel auth-pass mymaster lenovo20!&

6.上面就是添加密码认证的过程了,下面给出一些常用的reids命令,以及配置。

登录 redis 数据库

redis-cli  -h  host  -p  port

查看redis 数据库状态

Info

指定主库

slaveof  host  post 

解除主从关系(慎用)

slaveof  no  one

设置向redis主同步的密码

config set masterauth "lenovo20!&"

设置远程连接的密码

config set requirepass "lenovo20!&"

将配置写到配置文件里

config rewrite

查询key

get key

新建key

set key value

删除key

del key

7.配置文件:

/etc/redis.conf

bind 172.16.51.140

protected-mode yes

port 6379

tcp-backlog 511

timeout 0

tcp-keepalive 300

daemonize no

supervised systemd

pidfile "/var/run/redis_6379.pid"

loglevel notice

logfile "/var/log/redis/redis.log"

databases 16

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename "dump.rdb"

dir "/opt/webapps/redis"

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

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-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

# Generated by CONFIG REWRITE

 

masterauth "lenovo20!&"

requirepass "lenovo20!&"

slaveof 172.16.51.141 6379

 

/etc/redis-sentinel.conf

dir "/opt/webapps/redis"

logfile "/var/log/redis/sentinel.log"

sentinel myid e85b094ccd8da12305652c84aa9cdbdd0a0caec8

sentinel monitor mymaster 172.16.51.141 6379 1

sentinel down-after-milliseconds mymaster 15000

sentinel failover-timeout mymaster 10000

sentinel auth-pass mymaster lenovo20!&

# Generated by CONFIG REWRITE

port 26379

supervised systemd

sentinel config-epoch mymaster 3

sentinel leader-epoch mymaster 3

sentinel known-slave mymaster 172.16.51.140 6379

sentinel current-epoch 3

你可能感兴趣的:(redis)