2021年11月07日 21:19
原创作品,转载时请务必以超链接形式标明文章原始出处,否则将追究法律责任。

2021年的第一场雪,比以往时候来的更早一些,早上出门铲雪先铲个十分钟,今年气候确实比往年冷的更早一些。

image.png

今天我们看一下怎么在centos上搭建redis集群,我们看一下

第一步我们下载redis-6.2.6

1.PNG

第二步,对下载的压缩包进行解压,解压后的文件夹为redis-6.2.6,进入解压目录

image.png

第三步,我们将解压的文件换个目录移到usr/local/redis目录,然后执行make命令进行编译,最终当我们看到Leaving directory '/usr/local/redis/src'后表示编译成功

image.png

进入src目录我们发现里面是redis的源码,如下,所以我们需要编译成linux可执行文件

image.png

第四步,编译完成了接下来当然是安装了,用命令make PREFIX=/usr/local/redis install进行安装,直到我们看见Completed的时候就表示安装成功了。注意这里

PREFIX参数的作用是编译的时候用于指定程序存放的路径,我们指定存放路径是redis目录。

image.png

在redis目录下此时会生成一个bin目录,可以使用redis-server命令启动单节点的redis,但是今天说的是集群,所以就不说单节点了。

image.png

第五步,接下来我们需要在usr/local下新建一个目录,叫redis-cluster,在redis-cluster目录下新建六个文件夹,7001~7006

image.png

第六步,我们把redis目录下的redis.conf分别copy到这六个目录,并对redis.conf文件进行修改,以7001为例,需要修改的内容如下,修改的时候我建议大家使用WinScp工具连接去修改,vi命令改起来太痛苦了,我们总共改如下几个配置项,其他的默认

bind 0.0.0.0 --意思是任何ip都可以访问redis
protected-mode yes --这里我们不希望redis被远程访问,所以就设置成保护模式
port 7001 --端口
daemonize yes --后台运行
pidfile /var/run/redis_7001.pid
logfile "7001.log" --log文件名
appendonly yes 持久化方式
cluster-enabled yes  --支持集群模式
cluster-config-file nodes-7001.conf
requirepass xxxx --设置密码,密码都设置成一样的

第七步,使用命令启动这六个端口的redis服务

for((i=1;i<=6;i++)); do /usr/local/redis/bin/redis-server /usr/local/redis-cluster/700$i/redis.conf; done

使用命令查看redis各节点是否启动成功,看起来没问题

image.png

第八步,创建集群,使用如下命令,注意这里需要加-a 密码,否则提示你没有权限

./redis-cli --cluster create -a 密码 172.26.233.95:7001 172.26.233.95:7002 172.26.233.95:7003 172.26.233.95:7004 172.26.233.95:7005 172.26.233.95:7006 --cluster-replicas 1

注意这里的ip,因为我用的是阿里云的ECS服务器,所以这里的IP需要写服务器的内网IP,而不是外网IP,切记,创建成功后的输出内容如下,大家可以看到3个master,三个slave,也就是3主3从的集群。因为我之前搭建的时候用的是127.0.0.1,所以如下截图是127.0.0.1,按照上面的命令的话应该是172.26.233.95

image.png

接下来就创建成功了,我们进入redis查个数据试试

image.png

我们发现是需要输入密码的,当我们查询test的值时,它给我们自动切到700端口去查询,因为7002也有密码,所以我们再次输入密码

image.png

再次查询时,它给我们返回了(nil),接下来我们写个key为name的数据测试一下,年纪大了,总是多打一个单引号。

image.png

ok,集群已经测试成功,接下来我们再看看如何查看集群状态,直接输入命令cluster nodes,如下image.png

最后,我们看一下redis各个节点的文件夹内容,多了一些文件,rdb和aof持久化数据文件,log文件

image.png

那么顺便简单提一下RDB和AOF,RDB适合

1、redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)

2、RDB就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上

3、AOF则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍而实现数据恢复

更多关于这两个的区别,大家去查查资料。

发表评论
匿名  
用户评论
暂无评论