安装 gcc :
yum install gcc
安装 tcl :
yun install tcl
解压缩文件:
tar -zxvf redis-6.2.4.tar.gz
进入到 redis 解压目录 ,执行命令
make && make install
# 启动命令
redis-server redis.conf
# 使用redis-cli连接redis
# -p 指定连接的端口号
redis-cli -p 6379
# 指定 redis
redis-cli shutdown
# 需要密码认证 redis 是密码
redis-cli -a redis shutdown
# 在 redis-cli 中 输入 也可以关闭 Redis
shutdown
Ctril + c
关闭命令:
安装成功的结果:
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
添加 :firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入: firewall-cmd --reload
查看: firewall-cmd --zone= public --query-port=80/tcp
删除: firewall-cmd --zone= public --remove-port=80/tcp --permanent
**注意:**第 11 步,是从机需要配的,主机不需要配置;(前10步是主从都需要配置的;)
备份好redis.conf文件;
复制文件的命令:
# 拷贝命令
cp redis-6.2.4/redis.conf redis.conf
# 重命名文件名
mv redis.conf redis6379.conf
# 查看关于redis正在运行的进程
ps -ef | grep redis
操作中包括这三个配置文件:redis6379.conf(master)、redis6380.conf (slave)、redis6381.conf (slave)
daemonize yes:以守护进程的方式运行,默认是 no,我们需要自己开启为yes,如果以后台的方式运行,我们就需要指定一个 pid 文件! pidfile /var/run/redis_6379.pid
**注意:**如果以后台的方式运行,我们就需要指定一个 pid 文件!
#bind 127.0.0.1 //不绑定任何网络接口,只连接本地
protected-mode:yes 是否开启保护模式,Redis默认开启,如果没有设置bind的IP地址和Redis密码,那么服务就会默认只能在本机运行
1.保护你的redis实例,防止被访问和利用
2.大白话:只有本地才能操作这个实例,外网不行
持久化文件保存的目录,默认保存在当前目录下
dir /root/redis/work # 这个配置会将该appendfilename "appendonly.aof"这种配置的文件名写到/root/redis/work这个目录下
1.appendonly是一个用于配置是否开启AOF(Append Only File)持久化方式的参数。
2.默认情况下,appendonly的值为no,表示未启用AOF。
3.AOF持久化是一种将写操作追加到文件末尾的方式,它记录了所有对Redis数据集的写操作命令。通过启用AOF,Redis可以在重新启动时根据AOF文件的内容来恢复数据集。如果您希望启用AOF持久化方式,可以通过编辑redis.conf文件来完成。找到名为appendonly的行,并将其值修改为yes
开启这个配置,在日志文件中会打印 Redis 图像
展示:
配置完 3.2 十个步骤之后,这两个文件需要另外配置 要连接的主节点的 ip ,端口 ,密码;
# 查看复制节点的主从关系和配置信息
info replication
# replicaof/slaveof 这两个一样,一般写入进 redis.conf 配置文件内,
# 在运行期间修改slave节点的信息,如果该数据库已经某个数据库的从数据库,
# 那么会停止和原主数据库的同步关系转而和新的主数据库同步
replicaof/slaveof 主库IP 主库端口
# 使当前数据库停止与其他数据库的同步,升级为主数据库
replicaof/slaveof no one
主节点:
从节点:
6381 这个执行 slaveof 语句
切换主节点 到 6380 的情况
执行命令之后 6381的状态:
执行命令之后 6380的状态:
设置主机IP、端口、和redis密码;
redis6379.conf
redis-server /root/redis/redis6379.conf
redis-cli -a redis -p 6379
redis6380.conf
redis-server /root/redis/redis6380.conf
redis-cli -a redis -p 6380
redis6381.conf
redis-server /root/redis/redis6381.conf
redis-cli -a redis -p 6380
b. 从机(以一台为例)
info replication
1. 主机
1. ![image.png](https://cdn.nlark.com/yuque/0/2023/png/23025291/1700126641408-cced335d-6138-48cc-a5b8-47606f38f9fc.png#averageHue=%23272523&clientId=ud9eea62a-1954-4&from=paste&height=266&id=ev4b6&originHeight=332&originWidth=689&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=34365&status=done&style=none&taskId=ub2223183-5389-499b-a10e-24bffe077b5&title=&width=551.2)
2. 从机
1. ![image.png](https://cdn.nlark.com/yuque/0/2023/png/23025291/1700126670214-b6ac1adc-694b-4372-a820-57c0b89c1588.png#averageHue=%23262422&clientId=ud9eea62a-1954-4&from=paste&height=365&id=CDnXb&originHeight=456&originWidth=605&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=39514&status=done&style=none&taskId=uce2bf93b-819e-4879-a445-1e2776352f6&title=&width=484)
手动指定的配置:
https://tangzhi.blog.csdn.net/article/details/126686223
第一次连接全量同步的情况:
复制偏移量超出 back_log 缓冲区,进行全量同步的情况:
而全量同步,是发生在下面这两个时间节点的:
全量同步大概有以下三个阶段:
注意:
在Redis的主从复制中,当从节点连接到主节点并请求进行复制时,主节点会返回给从节点版本信息,其中包括以下内容:
从节点在接收到主节点的版本信息之后,将会使用这些信息来进行初始化同步或部分重同步,以确保从节点与主节点的数据一致性。
发生增量同步的时间节点:
增量同步有两个阶段: