文章目录
- 1.主从复制示意图
- 2.搭建一主多从
- 1.搭建规划三台机器(一主二从)
- 2.将两台从Redis服务都按照同样的方式配置(可以理解为Redis初始化)
- 1.安装Redis
- 1.yum安装gcc
- 2.查看gcc版本
- 3.将redis6.2.6上传到/opt目录下
- 4.进入/opt目录下然后解压
- 5.进入 redis-6.2.6目录
- 6.编译并安装
- 7.进入 /usr/local/bin 查看是否有redis的命令
- 2.启动并使用Redis
- 1.进入 /opt/redis-6.2.6/
- 2.将里面的redis.conf复制一份到/etc下
- 3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
- 4.启动redis,指定刚才的配置文件
- 5.查看redis进程
- 3.Redis基本配置
- 1.修改端口为7489 port
- 2.设置redis密码 requirepass
- 3.使redis支持远程访问 bind
- 4.登录redis的命令行,关闭redis
- 5.重新启动redis,使配置生效
- 4.开启7489端口
- 1.宝塔开启端口
- 2.腾讯云开启端口(只允许本机ip访问)
- 5.Redis持久化配置
- 1.进入redis配置文件
- 2.dbfilename为redis持久化的文件名(一般不用改)
- 3.dir修改为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
- 4.开启AOF持久化配置,编辑配置文件找到appendonly,设置成yes
- 5.进入命令行关闭redis,需要指定端口登录
- 6.重新启动redis,使配置生效
- 7.发现/root/下面有两个配置文件,如果没有dump.rdb是因为没有对redis进行操作
- 6.测试Java连接redis
- 1.引入jedis的jar包
- 2.编写测试程序
- 3.配置Redis的一主二仆
- 1.在配置之前,将三台的Redis的7489端口完全放开
- 2.三台机器都进入redis的客户端,将数据全部清除
- 3.输入 info replication 可以看到目前三台机器都为master
- 4.在两台从服务上输入 slaveof 主服务ip 主服务端口 来设置主服务
- 5.输入 info replication 来查看角色
- 1.从服务
- 2.主服务
- 3.没连接成功,后来询问GPT4发现如果主服务器配置了密码,则需要在从服务器的masterauth 中设置一下密码
- 6.为两台从服务器的 masterauth 配置主服务器的密码,然后测试连接
- 1.分别设置密码
- 2.分别重启
- 3.从服务器重新配置
- 4.再查看一下主服务器的状态,也是成功连接两台从服务器
- 7.注意事项和细节
- 1.如果想要持久化,需要在从服务的配置文件中配置 slaveof ...... 否则重启主从关系就会消失
- 2.主服务器可读可写,从服务器只可读
- 3.主从复制原理分析
- 1.原理示意图
- 2.解读
- 3.细节
- 1.主服务down掉了的情况
- 2.当从服务down掉了的情况
- 4.薪火相传
- 5.反客为主(是在薪火相传的基础上的)
- 4.哨兵模式(sentinel)
- 1.配置哨兵
- 1.**保持一主二仆的环境即可**
- 2.随便找一台服务器启动哨兵,这里选择在master服务器启动
- 1.在/etc下面创建一个sentinel.conf的配置文件
- 2.编辑文件,设置master的名字,ip+端口以及哨兵的个数,这里是1,还有master的密码
- 3.再开启一个连接,启动哨兵,指定配置文件
- 2.测试
- 1.关闭master
- 2.等待一会,查看哨兵,可以看到切换了master
- 3.查看子节点的情况,注意:此时需要重新进行密码验证
- 4.重启原来的master,会自动降级为子节点
- 3.注意事项和细节
- 1.主机down后的执行流程
- 2.哨兵挑选新master的依据
- 3.重启原来的master,会自动降级为子节点
- 4.如果原来的主节点有密码,则需要在sentinel.conf 配置auth-pass参数设置密码
- 5.关于密码配置方案
1.主从复制示意图
2.搭建一主多从
1.搭建规划三台机器(一主二从)
2.将两台从Redis服务都按照同样的方式配置(可以理解为Redis初始化)
1.安装Redis
1.yum安装gcc
yum install gcc
2.查看gcc版本
gcc --version
3.将redis6.2.6上传到/opt目录下
4.进入/opt目录下然后解压
cd /opt && tar -zxvf redis-6.2.6.tar.gz
5.进入 redis-6.2.6目录
cd redis-6.2.6
6.编译并安装
make && make install
7.进入 /usr/local/bin 查看是否有redis的命令
cd /usr/local/bin && ll
2.启动并使用Redis
1.进入 /opt/redis-6.2.6/
cd /opt/redis-6.2.6/
2.将里面的redis.conf复制一份到/etc下
cp redis.conf /etc/redis.conf
3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
vim /etc/redis.conf
4.启动redis,指定刚才的配置文件
/usr/local/bin/redis-server /etc/redis.conf
5.查看redis进程
ps -aux | grep redis
3.Redis基本配置
1.修改端口为7489 port
2.设置redis密码 requirepass
3.使redis支持远程访问 bind
4.登录redis的命令行,关闭redis
/usr/local/bin/redis-cli
5.重新启动redis,使配置生效
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
4.开启7489端口
1.宝塔开启端口
systemctl start firewalld && firewall-cmd --permanent --add-port=7489/tcp && firewall-cmd --reload && firewall-cmd --query-port=7489/tcp
2.腾讯云开启端口(只允许本机ip访问)
5.Redis持久化配置
1.进入redis配置文件
vim /etc/redis.conf
2.dbfilename为redis持久化的文件名(一般不用改)
3.dir修改为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
4.开启AOF持久化配置,编辑配置文件找到appendonly,设置成yes
5.进入命令行关闭redis,需要指定端口登录
/usr/local/bin/redis-cli -p 7489
6.重新启动redis,使配置生效
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
7.发现/root/下面有两个配置文件,如果没有dump.rdb是因为没有对redis进行操作
6.测试Java连接redis
1.引入jedis的jar包
2.编写测试程序
public static void main(String[] args) {// 连接服务器的redis命令行Jedis jedis = new Jedis("xxx", xx);// 如果redis设置了密码要先进行验证jedis.auth("******");String ping = jedis.ping();System.out.println(ping);}
3.配置Redis的一主二仆
1.在配置之前,将三台的Redis的7489端口完全放开
2.三台机器都进入redis的客户端,将数据全部清除
3.输入 info replication 可以看到目前三台机器都为master
4.在两台从服务上输入 slaveof 主服务ip 主服务端口 来设置主服务
slaveof xxxx xxx
5.输入 info replication 来查看角色
1.从服务
2.主服务
3.没连接成功,后来询问GPT4发现如果主服务器配置了密码,则需要在从服务器的masterauth 中设置一下密码
6.为两台从服务器的 masterauth 配置主服务器的密码,然后测试连接
1.分别设置密码
2.分别重启
3.从服务器重新配置
slaveof 。。。。。。
4.再查看一下主服务器的状态,也是成功连接两台从服务器
info replication
7.注意事项和细节
1.如果想要持久化,需要在从服务的配置文件中配置 slaveof … 否则重启主从关系就会消失
2.主服务器可读可写,从服务器只可读
3.主从复制原理分析
1.原理示意图
2.解读
3.细节
1.主服务down掉了的情况
- 从服务并不会抢占主服务的位置
- 当主服务重新启动之后,从服务又会指向主服务
2.当从服务down掉了的情况
- 当再次连接主服务时还是会进行一次全量备份
4.薪火相传
- 简单来说就是让b是a的slave,c是b的slave
- 这样c的数据就从b来获取,而写入操作还是从a进行
5.反客为主(是在薪火相传的基础上的)
4.哨兵模式(sentinel)
1.配置哨兵
1.保持一主二仆的环境即可
2.随便找一台服务器启动哨兵,这里选择在master服务器启动
1.在/etc下面创建一个sentinel.conf的配置文件
touch /etc/sentinel.conf
2.编辑文件,设置master的名字,ip+端口以及哨兵的个数,这里是1,还有master的密码
vim /etc/sentinel.conf
sentinel monitor redis_master ........
3.再开启一个连接,启动哨兵,指定配置文件
/usr/local/bin/redis-sentinel /etc/sentinel.conf
2.测试
1.关闭master
2.等待一会,查看哨兵,可以看到切换了master
3.查看子节点的情况,注意:此时需要重新进行密码验证
4.重启原来的master,会自动降级为子节点
3.注意事项和细节
1.主机down后的执行流程
2.哨兵挑选新master的依据
3.重启原来的master,会自动降级为子节点
4.如果原来的主节点有密码,则需要在sentinel.conf 配置auth-pass参数设置密码
5.关于密码配置方案
- 在redis.conf中配置requirepass 以及masterauth 都为相同的密码,这样各个节点就可以正常连接了
- 如果是哨兵模式还要在sentinel.conf 配置master的密码,格式为 sentinel auth-pass master名字yourStrongPassword