redis的主从搭建和密码配置

您所在的位置:网站首页 redis修改密码后无法连接怎么办 redis的主从搭建和密码配置

redis的主从搭建和密码配置

2024-07-15 16:34| 来源: 网络整理| 查看: 265

目录 主从的概念主从的配置配置主服务器 master配置从服务器slave查看主从关系验证主从读写功能master(读写)slave(只读) redis主从搭建与集群搭建密码的配置

主从的概念 主Redis写入数据时,从Redis会通过Redis Sync机制,同步数据,确保数据一致。并且Redis有哨兵(Sentinel)机制,Redis主挂掉会自动帮我们提升从为主,不过哨兵我发现只适用一主多从,不太适合级联模式。⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1通过主从配置可以实现读写分离master和slave都是一个redis实例(redis服务) 主从结构图 主从的配置 配置主服务器 master

这里自己用自己私有的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: 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: 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]# 配置从服务器slave

这里用的本地虚拟机centos中的redis服务器

查看slave ip [root@localhost ~]# ip addr 1: lo: 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: 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服务器(先杀死进程,在加载配置文件启动) 查看主从关系 在master下 输入 redis-cli -h 11.23.119.188 info replication -a 123456(主master密码) Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:1 slave0:ip=111.19.42.76,port=6379,state=online,offset=3458,lag=0 master_replid:22dc694b36c6634f14ef9f1718fd0c8f0b81e1a1 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:3458 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:3458 You have new mail in /var/spool/mail/root [root@10-23-117-188 bin]# 在slave下输入 redis-cli -h 192.168.0.111(slave绑定的ip) -a 123456(从slave密码) [root@localhost bin]# ./redis-cli -h 192.168.0.111 -p 6379 -a 123456 info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:slave master_host:106.75.226.106 master_port:6379 master_link_status:up master_last_io_seconds_ago:3 master_sync_in_progress:0 slave_repl_offset:4494 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:22dc694b36c6634f14ef9f1718fd0c8f0b81e1a1 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:4494 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:4494 [root@localhost bin]# 验证主从读写功能master(读写)slave(只读) masert端 [root@10-23-117-188 bin]# redis 127.0.0.1:6379> set name laowang (error) NOAUTH Authentication required. 127.0.0.1:6379>

提示没有验证,输入密码即可 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主从搭建与集群搭建密码的配置

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3