2021年的第一场雪,比以往时候来的更早一些,早上出门铲雪先铲个十分钟,今年气候确实比往年冷的更早一些。
今天我们看一下怎么在centos上搭建redis集群,我们看一下
第一步我们下载redis-6.2.6
第二步,对下载的压缩包进行解压,解压后的文件夹为redis-6.2.6,进入解压目录
第三步,我们将解压的文件换个目录移到usr/local/redis目录,然后执行make命令进行编译,最终当我们看到Leaving directory '/usr/local/redis/src'后表示编译成功
进入src目录我们发现里面是redis的源码,如下,所以我们需要编译成linux可执行文件
第四步,编译完成了接下来当然是安装了,用命令make PREFIX=/usr/local/redis install进行安装,直到我们看见Completed的时候就表示安装成功了。注意这里
PREFIX参数的作用是编译的时候用于指定程序存放的路径,我们指定存放路径是redis目录。
在redis目录下此时会生成一个bin目录,可以使用redis-server命令启动单节点的redis,但是今天说的是集群,所以就不说单节点了。
第五步,接下来我们需要在usr/local下新建一个目录,叫redis-cluster,在redis-cluster目录下新建六个文件夹,7001~7006
第六步,我们把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各节点是否启动成功,看起来没问题
第八步,创建集群,使用如下命令,注意这里需要加-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
接下来就创建成功了,我们进入redis查个数据试试
我们发现是需要输入密码的,当我们查询test的值时,它给我们自动切到700端口去查询,因为7002也有密码,所以我们再次输入密码
再次查询时,它给我们返回了(nil),接下来我们写个key为name的数据测试一下,年纪大了,总是多打一个单引号。
ok,集群已经测试成功,接下来我们再看看如何查看集群状态,直接输入命令cluster nodes,如下
最后,我们看一下redis各个节点的文件夹内容,多了一些文件,rdb和aof持久化数据文件,log文件
那么顺便简单提一下RDB和AOF,RDB适合
1、redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)
2、RDB就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上
3、AOF则是换了一个角度来实现持久化,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍而实现数据恢复
更多关于这两个的区别,大家去查查资料。