这里自己用自己私有的uclude云服务器当做master
确认关闭所有服务器的防火墙 关闭防火墙: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)查看master ip [root@10-23-117-188 ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1452 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:fe:c2:c8 brd ff:ff:ff:ff:ff:ff inet 11.23.119.188/16 brd 10.23.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fefe:c2c8/64 scope link valid_lft forever preferred_lft forever [root@10-23-117-188 ~]#可以看到ip为: 11.23.119.188(为云服务器默认配的内网ip)
设置之前的redis.conf文件,自己放在在cd /usr/local/redis-6.0.8/bin下 [root@10-23-117-188 ~]# cd /usr/local/redis-6.0.8/bin/ [root@10-23-117-188 bin]# ls backup.db dump.rdb redis-benchmark redis-check-aof redis-check-rdb redis-cli redis.conf redis-sentinel redis-server [root@10-23-117-188 bin]# 打开当前文件夹下的service.conf vim service.conf 修改配置 bind 11.23.119.188 127.0.0.1 #绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。如果bind选项为空的话,那会接受所有来自于可用网络接口的连接 == protected-mode no == #保护模式,默认是开启状态,只允许本地客户端连接 daemonize yes #默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。 appendonly yes #默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入appendonly.aof文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。 如果需要设置密码,则添加 requirepass 123456(自己的密码)重启redis服务器(先杀死进程,在加载配置文件启动) [root@10-23-117-188 bin]# ps -aux |grep redis root 7048 0.1 0.5 173316 9688 ? Ssl 14:35 0:09 ./redis-server 10.23.117.188:6379 root 11323 0.0 0.1 112828 2296 pts/0 R+ 16:25 0:00 grep --color=auto redis [root@10-23-117-188 bin]# kill -9 7048 [root@10-23-117-188 bin]# ./redis-server ./redis.conf You have new mail in /var/spool/mail/root [root@10-23-117-188 bin]#这里用的本地虚拟机centos中的redis服务器
查看slave ip [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:24:9c:4e brd ff:ff:ff:ff:ff:ff inet 192.168.0.111/24 brd 192.168.0.255 scope global noprefixroute ens33 valid_lft forever preferred_lft forever inet6 fe80::7e0f:4e94:3afd:ae55/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@localhost ~]#可以看到ip为: 192.168.0.111
设置之前的redis.conf文件,同样自己放在 /usr/local/redis-5.0.4/bin下 [root@localhost ~]# cd /usr/local/redis-5.0.4/bin/ [root@localhost bin]# ls dump.rdb redis-benchmark redis-check-aof redis-check-rdb redis-cli redis.conf redis-sentinel redis-server 打开redis.conf文件 [root@localhost bin]# vim redis.conf 修改配置 bind 192.168.0.111 127.0.0.1 slaveof 106.75.226.106 6379(主节点的ip和端口) #此处为自己的云服务对外网的ip,如果你用的是局域网搭建,则写自己局域网master绑定的ip,端口6379 port 6379 因为master 服务器设置了密码,所以slave 还需要加上 masterauth 123456 (验证master的密码,此密码为master的密码 requirepass 123456 (给slave设置密码,可设置可不设置,自己选择)重启redis服务器(先杀死进程,在加载配置文件启动)提示没有验证,输入密码即可 auth 123456
127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379> set name laowang OK 127.0.0.1:6379> get name "laowang" 127.0.0.1:6379> slave端 [root@localhost bin]# redis 127.0.0.1:6379> auth 123456 OK 127.0.0.1:6379> get name "laowang" 127.0.0.1:6379> set age 18 (error) READONLY You can't write against a read only replica. 127.0.0.1:6379>由上验证了slave端只能读不能写,master端可读可写。
redis主从
主服务器修改配置文件 添加 requirepass redis2020
从服务器修改配置文件 添加 masterauth redis2020 requirepass redis2020
重启主从服务
redis集群
修改每个节点配置文件 添加 masterauth redis2020 requirepass redis2020重启集群各节点服务验证
无密码进入redis测试 redis-cli -h ip -p port 之后执行 keys * 因为已经设置了密码,所以出现下面的错误 (error) NOAUTH Authentication required. 使用密码进入就没有问题,如下所示 redis-cli -h ip -p port -a redis2020设置密码后,查看集群状态,关闭服务等命令都需要在后边加上密码配置参数 如查看集群状态 redis-cli -h ip -p port -a redis2020 cluster nodes 关闭服务 redis-cli -h ip -p port -a redis2020 shutdown