周六喝完奶茶+可乐,感觉人生好无聊,于是整个Redis集群玩一下。
先说一下环境:
阿里云服务器16G x1、Ubuntu20、Redis5.0.14(使用Redis5不需要Ruby,不需要Ruby,不需要Ruby!)
部署完成后三主三从,以及一些可能会遇到的坑。
1、Redis官网下载5.0.14源码,传到服务器(你可以使用wget),此处我已经传完了没啥好截图的,然后解压:
tar -zxvf redis-5.0.14.tar.gz #解压
进入到解压后的根目录:
cd redis-5.0.14 #跳转目录
make #直接make,中间的警告无所谓,如果出现error,那就升级一下gcc这些的版本
2、make结束后,进入到src目录,执行make install
make install PREFIX=/usr/local/redis01 #PREFIX指定install的目录
3、install结束后就直接复制五份,以备后用,cp命令,无需解释
4、配置修改,找到六份redis目录下任意一个的redis.conf文件,vim开启编辑。
顺带说一下,vim下使用 /port 以及 ?port 可以搜索文中port字段,你懂的。
同时,配置文件里面,只有port的参数需要各不相同!
port 11111 #端口,必须,切记,其他五个redis端口要改,我是11111~11116这六个端口
bind 0.0.0.0 #IP不限制,习惯改成0了,必须,避免后面出现麻烦,如果是外网,必须!
daemonize yes #后台模式,必须
appendonly yes #仅追加
appendfsync always #自行翻译,如你所想
cluster-enabled yes #集群开启,必须
dir /usr/local/redis-cluster/redis01/data/ #数据存放目录,可选
cluster-config-file nodes.conf #节点信息,可选,因为系统会默认
5、接下来就是配置文件各自复制一份,记得改好各不相同的端口!
6、启动Redis,随意链接几个试试,随你用可视化工具或者redis-cli都可以,六个全部启动
cd redis01
ls
redis-server redis.conf
#六个依次全部启动,不要教我写脚本,我懒得写
7、上一步测试完节点均可使用后,就可以创建集群了!
先说一个注意点:创建集群前,保证你的每一个redis目录下没有以下三个数据文件,也可以理解为,上一步只要可以链接上就可以了,别set内容。
appendonly.aof
nodes.conf #这个名字可能会是nodes-xxx.conf,实际还没创建集群时,这个不会有
dump.rdb
执行创建集群命令:
#--cluster-replicas 1 意思是复制模式1:1,前三为主,后三位从
redis-cli --cluster create 127.0.0.1:11111 127.0.0.1:11112 127.0.0.1:11113 127.0.0.1:11114 127.0.0.1:11115 127.0.0.1:11116 --cluster-replicas 1
啰嗦一句,因为我是单机部署六个Redis,所以IP地址可以127.0.0.1,但是这样在远程连接时会有一些问题。
所以如果你是要外网访问,最好是换成公网IP,否则使用可视化工具时链接集群时,会链接失败,或者set内容失败。
同时,因为我没有设置密码,所以最后不用auth,如果你设置了密码,在命令最后加上:-a 密码
提示下面让你输入yes,输入就行了,如下图所示就是ok了!
8、节点信息查看,用一下命令或者可查看redis任意一个目录下的nodes.conf文件:
cluster nodes #客户端链接后执行的命令,别直接在bash下执行,如果你没听懂,那就是在你可以set的时候输入
9、htop,强烈安利,查看结束进程很方便,我懒得命令restart等。
如果你发现有问题,可以在这里结束进程,或者你就kill命令去吧
10、测试链接,我是用的可视化工具:Another Redis
链接时候,务必选择集群模式链接(如果你链接失败,可以重新看上面配置文件部分,或者往下看)
由于自动生成的nodes.conf文件里面,会默认生成带有内网IP,所以你如果是要使用外网链接,就去把每一个redis目录下的该配置文件里面IP为内网的改成外网,然后再重启所有Redis!不用再重新创建集群!
下面的图是链接后的示例图,节点信息图看步骤8去吧!