本文是Redis系列第4篇,前3篇欢迎移步
【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手_AQin1012的博客-CSDN博客关于Redis的数据类型,各个文章总有些小不同,我们这里讨论的是Redis 7.0,为确保准确,我们直接看官网。https://blog.csdn.net/aqin1012/article/details/130365083
【Redis】持久化机制详解:从RDB到AOF,你需要知道的一切_AQin1012的博客-CSDN博客持久化其实就4个单词:加强数据安全Redis支持两种不同的持久化机制,RDB和AOF。https://blog.csdn.net/aqin1012/article/details/130481261
【Redis】不卡壳的 Redis 学习之路:事务_AQin1012的博客-CSDN博客数据库中的事务是指在一次与数据库连接的会话中,所有的SQL语句,要么都成功,要么都失败。在Redis中,事务是指可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会被序列化,按顺序地串行执行而不会被其他命令插入开启:以MULTI开始一个事务入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面执行:由EXEC命令触发事务。https://blog.csdn.net/aqin1012/article/details/131474273?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22131474273%22%2C%22source%22%3A%22aqin1012%22%7D
本文目录
什么是Redis的复制
能解决的问题
实际操作
权限细节
主要命令
操作流程
准备阶段
下载镜像(本文用的docker,也可以使用虚拟机)
安装Redis
修改redis配置
如何获取docker镜像的IP呢?
启动测试
先主后从,依次启动
查看主从信息
查看日志
总结
官网地址: https://redis.io/docs/management/replication/
其实就是主从复制,master以写为主,slave以读为主
当master数据变化的时候,自动将新的数据异步同步到其它slave数据库
配从库不配主库
本文以Redis的一主二从(一台主机(master)两台从机(slave))为示例
取一个centos的镜像(可以跟我用一样的,也可以用你自己的,前提是安装了docker)
docker pull bitnami/centos-base-buildpack:7-r9
1. 下载redis安装包并解压
wget https://download.redis.io/releases/redis-7.0.9.tar.gz
具体的版本参考地址(本文是用的是redis-7.0.9.tar.gz)
https://download.redis.io/releases/
2. 解压
tar -zxvf redis-7.0.9.tar.gz
3. 进入解压目录
cd redis-7.0.9
4. 编译
make
5. 指定安装目录并进行安装
make install PREFIX=/usr/local/redis
6. 添加软连接
ln -s /usr/local/redis/bin/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis-cli
7. 复制配置文件
cp /root/redis-7.0.9/redis.conf /usr/local/redis/bin/
此时/usr/local/redis/bin/目录下就出现了redis的配置文件
进入配置文件所在目录(按照上面的操作redis.conf文件复制了一份到/usr/local/redis/bin)
打开redis.conf文件
差不多长这样
使用:set nu可以显示行号,方便查找
:行号可以快速跳转到某一行
/搜索内容可以定位到包含“搜索内容”的行
4. 指定端口
主不用改
2个从需要换一下端口号
5. 指定当前工作目录,dir
6. pid文件名字,pidfile
主不用改
从需要对应上面port的设置修改
7. log文件名字,logfile
主不用改
从需要按照上面port的配置进行修改
8. requirepass
为主机(master)设设置密码,后面从机(slave)连接要使用
9. dump.rdb名字(建议添加端口号)
主机
从机
10. aof文件,appendfilename
appendonly yes 时配置
11. 从机(slave)访问主机(master)的通行密码masterauth,必须从机(slave)需要配置,此步骤主机(master)不用配置
从机(slave)需要做如下修改
补充一下(我真体贴(。・ω・。))~
查看当前运行的容器信息
根据容器ID获取该容器的IP
在我们这个一主二从的案例中
在每个docker都完成上面的配置后,可以将配置文件复制一份到我们配置中用到的aqinredis文件夹下,并加上端口重命名下(方便管理非必需)
主机(master)启动需要添加密码(requirepass中指定了的)
从机(slave)启动记得指定端口
在主里存入值,可以看到在两台从机(slave)中都可以获取到
但是从机(slave)是不能存值的(是只读的)
主机(master)
从机(slave)
我们查看下主机的日志(就是一开始配置文件redis.conf中设置的log文件),可以发现,已经记录了两台从机挂到主机上的日志了
可以再看下从机的日志,也可以看到相关信息
于是,有了后面要介绍的哨兵和集群( ̄∇ ̄)/