Redis学习笔记(7)-redis一主多从搭建高可用环境之简单版

本文详细介绍了在Redis 4.0.11中配置主从数据库的过程,包括创建文件夹、复制与修改配置文件、启动数据库及测试读写分离功能。阐述了主从复制原理,以及如何在主数据库宕机时,通过哨兵自动切换主从关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在redis的主目录下面建立三个文件夹

[root@xxxxx redis-4.0.11]# pwd
/root/redis/redis-4.0.11
[root@xxxxx redis-4.0.11]# mkdir 6379
[root@xxxxx redis-4.0.11]# mkdir 6380
[root@xxxxx redis-4.0.11]# mkdir 6381

拷贝redis.conf分别到这三个文件夹下面:

[root@xxxxx redis-4.0.11]# cp redis.conf 6379/redis_6379.conf
[root@xxxxx redis-4.0.11]# cp redis.conf 6379/redis_6380.conf
[root@xxxxx redis-4.0.11]# cp redis.conf 6379/redis_6381.conf

分别修改三个配置文件

bind  0.0.0.0              
Protected-mode no
port 6379          
daemonize yes 
logfile "6379.log"
pidfile "/var/run/redis_6379.pid" 
dbfilename dump_6379.rdb
slave-priority 100  

其中将6379作为主数据库,6380和6381作为从数据库需要多修改如下一处:

slaveof 127.0.0.1 6379

分别启动三个数据库

[root@xxxxx redis-4.0.11]# cd 6379
[root@xxxxx 6379]# redis-server redis_6379.conf
[root@xxxxx redis-4.0.11]# cd 6380
[root@xxxxx 6379]# redis-server redis_6380.conf
[root@xxxxx redis-4.0.11]# cd 6381
[root@xxxxx 6379]# redis-server redis_6381.conf

测试数据库

127.0.0.1:6379> set reptest hello
OK
127.0.0.1:6380> get reptest
"hello"

主从复制的原理

当一个从数据库接到命令后,会向主数据库发起sync命令。此时,主数据库会在后台进行快照保存,同时将进行快照的这段时间内收到的命令缓存起来,等快照结束后一并传输给从数据库。从数据库接到主数据库的数据后,首先会将主数据库的快照文件载入,随后将缓存的命令逐个执行。以上过程称为复制初始化。

复制初始化结束后,主数据库一旦接受到新的命令,会给从数据库发送,从而保证主从一致性。

从数据库在同步的过程中不会阻塞,可以继续响应客户端命令。可以配置一个参数slave-serve-stable-data no 使得从数据库在未完成同步的时候反馈错误信息给调用的客户端。

redis支持增量复制和无硬盘复制。

通过主从数据库的配置,可以实现数据库的读写分离。

当主数据库宕机后,可以设置其中一个从数据库,使其升级为主数据库:

slaveof no one

其从从数据库改变主数据库信息:

slaveof 127.0.0.1 8379

比较麻烦,哨兵可以解决这个问题,下一节,介绍哨兵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值