文章目录

  • 前言
  • 一、卸载已经安装的Redis
  • 二、将下载好的redis进行解压
  • 三、启动单机Redis
  • 四、搭建Redis集群
  • 1.拷贝三个redis.conf
  • 2.修改三个redis.conf
  • 3.分别启动三个redis服务
  • 4.将6380和6381变成6379的从节点
  • 五、启用哨兵模式



前言

入门必读文章。手把手帮你安装搭建Redis集群

一、卸载已经安装的Redis

就是把redis安装目录,和bin下的redis相关的都删除,redis-serve或者redis-cli等等吧。

pkill redis 	//停止redis
rm -rf /opt/redis-6.0.9	//删除安装目录(根据你自己情况看)
rm -rf /usr/local/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹

这些命令就基本删除完毕。

二、将下载好的redis进行解压

安装的位置是 /opt

解压命令:tar -zxvf redis-6.0.9.tar.gz

mac redis 关闭服务 关闭redis集群服务_Redis


安装完成后,多了redis目录

mac redis 关闭服务 关闭redis集群服务_mac redis 关闭服务_02


进入redis安装目录文件夹

mac redis 关闭服务 关闭redis集群服务_redis_03


输入make指令

[root@chedxstudy redis-6.0.9]# make

耐心等待一会。。。。

mac redis 关闭服务 关闭redis集群服务_配置文件_04


继续执行:

[root@chedxstudy redis-6.0.9]# make install

如果没有问题,/usr/local/bin中会多一些redis的命令。

mac redis 关闭服务 关闭redis集群服务_Redis_05

以上操作中,这里可能出现的问题就是gcc版本问题。使用下边的命令进行升级gcc。

#升级到 5.3及以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 
scl enable devtoolset-9 bash
 
#注意:scl命令启用只是临时的,推出xshell或者重启就会恢复到原来的gcc版本。
#如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

make成功以后我们就可以启动redis单机了。

三、启动单机Redis

[root@chedxstudy redis-6.0.9]# cd /usr/local/bin/

到bin目录,创建dxconfig专门存放redis.conf 配置文件。

mac redis 关闭服务 关闭redis集群服务_配置文件_06


将安装目录的redis.conf 复制到dxconfig目录。

mac redis 关闭服务 关闭redis集群服务_配置文件_07


接下来就到了激动人心的时刻了。我们来启动Redis。

启动:[root@chedxstudy bin]# redis-server dxconfig/redis.conf

查看进程:已经启动了。

mac redis 关闭服务 关闭redis集群服务_配置文件_08


接下来我们连接下:

[root@chedxstudy bin]# redis-cli -h 127.0.0.1 -p 6379最后你就可以操作单机的redis了。哈哈哈

mac redis 关闭服务 关闭redis集群服务_mac redis 关闭服务_09

四、搭建Redis集群

我们准备搭建的是一主两从集群。我们使用同一台服务器开三个窗口来进行操作。需要准备的是三个redis.conf 文件,我们准备使用的端口是6379、6380、6381。

1.拷贝三个redis.conf

mac redis 关闭服务 关闭redis集群服务_mac redis 关闭服务_10


拷贝到dxconfig文件夹中。

2.修改三个redis.conf

6379服务

port 6379
pidfile /var/run/redis_6379.pid
logfile "6379.log"
dbfilename dump6379.rdb

6380服务

port 6380
pidfile /var/run/redis_6380.pid
logfile "6380.log"
dbfilename dump6380.rdb

6381服务

port 6381
pidfile /var/run/redis_6381.pid
logfile "6381.log"
dbfilename dump6381.rdb

3.分别启动三个redis服务

[root@chedxstudy bin]# redis-server dxconfig/redis79.conf 
[root@chedxstudy bin]# redis-server dxconfig/redis80.conf 
[root@chedxstudy bin]# redis-server dxconfig/redis81.conf

启动后连接,并查看信息

6379:

mac redis 关闭服务 关闭redis集群服务_配置文件_11


6380:

mac redis 关闭服务 关闭redis集群服务_redis_12


6381:

mac redis 关闭服务 关闭redis集群服务_redis_13


可以看到启动以后他们的角色都是master

4.将6380和6381变成6379的从节点

在6380和6381上输入指令:

127.0.0.1:6380> SLAVEOF 127.0.0.1 6379 
127.0.0.1:6381> SLAVEOF 127.0.0.1 6379

再次查看info信息:

6380:

mac redis 关闭服务 关闭redis集群服务_mac redis 关闭服务_14


6381:

mac redis 关闭服务 关闭redis集群服务_mac redis 关闭服务_15


可以清楚的看到两个从节点的master都是6379节点。这样我们的集群就搭建完了。接下来进行简单的操作下。

在6379里set k1 v1;在6380和6381中都是可以获取的。

但是想使用6380和6381set数据的话,就会爆出问题。这里从节点只允许读,不允许写。

127.0.0.1:6380> set k2 v2
(error) READONLY You can't write against a read only replica.
127.0.0.1:6380>

接下来,我们给我们的集群添加一个哨兵。

五、启用哨兵模式

创建配置文件sentinel.conf
内容为基本内容:

# sentinel monitor 被监控的名称 host port 1
sentinel monitor myredis 127.0.0.1 6379 1
# 1是有多少哨兵认为挂了,master才是真的挂了

接下来我们启动哨兵:

[root@chedxstudy bin]# redis-sentinel dxconfig/sentinel.conf 可以看到打印出的日志信息,很明显的一主二从结构。

mac redis 关闭服务 关闭redis集群服务_配置文件_16


演示下哨兵的作用:我们把master节点shutdown,看看哨兵什么反应。

6379shutdown:

mac redis 关闭服务 关闭redis集群服务_mac redis 关闭服务_17


哨兵已经帮我们把master切换成了6380节点

mac redis 关闭服务 关闭redis集群服务_redis_18


接下来我们查看下两个节点的信息:

6380:可以看到,他已经变成master了,而他的从节点正是6381

mac redis 关闭服务 关闭redis集群服务_Redis_19


6381:可以 难道他还是slave节点,但是他的master变成了6380

mac redis 关闭服务 关闭redis集群服务_redis_20

接下来我们把6379重新连接回去,看看会发生什么?

可以看到,哨兵把他转换成了slave节点。(回来还想做爸爸,怎么可能哈哈哈)

mac redis 关闭服务 关闭redis集群服务_Redis_21


读到这里 ,相信你已经对redis环境搭建有了一定的了解。