一、Redis的主从模式
主从模式需要至少两个redis服务器,这里我们用一台服务器简单做一下操作
redis的基础安装见上述连接
1.进入我们redis的根目录
cd /usr/local/redis
2.创建一个文件夹ms来存放我们两个redis服务器的配置文件,待会儿分别用不同的配置文件来启动不同的redis
mkdir ms
3.复制我们的配置文件到ms文件夹下并改名
redis1的配置文件:
cp redis.conf /usr/local/redis/ms/redis1.conf
redis2的配置文件:
cp redis.conf /usr/local/redis/ms/redis2.conf
需要多少台redis服务器就创建多少个配置文件
4.修改我们刚才的配置文件
vim /usr/local/redis/ms/redis1.conf
每个服务器的配置文件都需要修改端口号
斜杠+搜索内容可以进行搜索
如:/port
port 6380
主服务器配置
bind 0.0.0.0
从服务器配置
bind 0.0.0.0
slaveof 主服务器的ip地址 Redis的端口
5.进入redis的bin目录
cd /usr/local/redis/bin
6.启动redis
下述命令是启动redis1的,启动其他redis将配置文件更改一下即可
./redis-server /usr/local/redis/ms/redis1.conf
7.进入我们的主服务
./redis-cli -c -h ip地址 -p 端口号
例如
./redis-cli -c -h 127..0.0.1 -p 6379
8.使用info命令进行查看
如下图,我当前查看的就是主服务器,当前有一个从服务器连接上来
9.测试
在我们的主服务器设值并查看
可以看到我们的主服务器是即可以写,又可以读的
我们再进入从服务器进行查看,从图中可以看到,目前我们的redis角色是从服务器,还可以看到主服务器的相关信息
尝试在从服务器进行设值并查看,可以看到,我们的从服务器并没有写的权限,仅仅只能读
二、redis的哨兵模式
由于主从模式的局限性,哨兵模式诞生了
哨兵模式至少要两个redis服务器,也就是在我们的主从模式的基础上,再启动哨兵,就构建成了哨兵模式,我这里是弄了两个从服务器,一个主服务器,便于观察
1.复制哨兵配置文件到我们创建的redis集群配置文件夹ms下
在我们最开始下载的redis文件根目录下有一个sentinel.conf文件,这就是我们的哨兵配置
cd /usr/local/redis-6.2.7
cp sentinel.conf /usr/local/redis/ms
2.修改哨兵配置文件
vim /usr/local/redis/ms/sentinel.conf
sentinel monitor mymaster ip 端口 投票选举的次数
sentinel down-after-milliseconds mymaster 5000 多久进行检测一下主节点活着没有,不配置则是默认30s
3.启动哨兵模式
redis-sentinel /usr/local/redis/ms/sentinel.conf &
命令中&表示后台启动,不然退出后哨兵也就自动关闭了,出现下图即启动成功
4.查看我们redis都启动了那些相关的服务
ps -ef | grep redis
5.杀死redis主服务器,查看哨兵的选举过程
kill -9 1299374
如图,哨兵最开始会给主服务器发送心跳检测,当主服务器没有正常返回时,哨兵进行选举,选举了6382这个端口的redis作为主服务器
6.重新启动最开始的主服务器,也就是6380这个端口的redis
启动原来的主服务器
./redis-server /usr/local/redis/ms/redis1.conf
图中我们看到,当我们重新启动原来的主服务器时,他自动成为了新主服务器的从服务器
7.进入6380进行查看
./redis-cli -c -h 127.0.0.1 6380
这里,我们进一步验证了,重新启动的原主服务器已经成为了新主服务器的从服务器,这就是哨兵模式及其自动选举
三、redis的集群模式
1.在redis文件夹下创建新文件夹cluster存放集群的redis配置
cd /usr/local/redis
mkdir cluster
2.进入cluster文件夹,创建六个文件夹,用于存放六个redis配置文件
cd cluster
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
mkdir 7006
3.复制配置文件到7001文件夹
cp /usr/local/redis/etc/redis.conf 7001/
4.修改配置文件
vim 7001/redis.conf
bind 0.0.0.0
port 7001
pidfile /var/run/redis_7001.pid
dir "/usr/local/redis-cluster/7001"
appendonly yes
cluster-enabled yes
cluster-config-file nodes-7001.conf
5.将修改后的配置文件复制到另外5个文件夹下,再按照步骤4进行修改,将所有的7001修改为相对应的7002,7003,7004,7005
cp 7001/redis.conf 7002
vim 7002/redis.conf
6.进入redis的bin目录下启动六个redis
cd /usr/local/redis/bin/
./redis-server /usr/local/redis/cluster/7001/redis.conf
7.以如下命令启动集群
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
命令最后的1是主服务器与从服务器的比例值
出现下图,启动成功
从服务器的replicates后的值对应主服务器ip地址前的值,一 一对应,三主三从