Redis5创建redis-cluster集群,并设置密码,phpredis连接

摘要: 最近在配置redis集群,全网基本没有redis5集群配置,并且phpredis连接redis集群成功的案例。一个教程也没有。fuck!!!废话不多说了,我的环境是Centos+nginx+php7+redis5

最近在配置redis集群,全网基本没有redis5集群配置,并且phpredis连接redis集群成功的案例。一个教程也没有。fuck!!!

废话不多说了,我的环境是Centos+nginx+php7+redis5+phpredis3+thinkphp5

吾爱源码这里原创发布,给大家写清楚,配置流程,成功实现thinkphp5使用phpredis成功链接redis cluster集群模式。

我用的是两台服务器,分别是172.19.0.122跟172.19.0.121 。这是内网服务器。阿里云的服务器。配置的内网。

分别在两台服务器内创建三个实例。一共6个,组成redis cluster集群。

修改redis.conf配置文件:

port 6379  #端口
cluster-enabled yes #启用集群模式
cluster-config-file nodes.conf
cluster-node-timeout 5000 #超时时间
appendonly yes
daemonize yes #后台运行
protected-mode no #非保护模式
pidfile  /var/run/redis_6379.pid

一共6个,自己分别修改下把端口以及pidfile吧。


1、主服务器启动服务端:

在/home/redis/cluster内三个文件夹。分别在三个文件夹内启动服务端

redis-server redis.conf

2、备用服务器启动服务端:

在/home/redis/cluster内三个文件夹。分别在三个文件夹内启动服务端

redis-server redis.conf


启动后之后创建集群:

redis-cli --cluster create 172.19.0.122:6379 172.19.0.122:6380 172.19.0.122:6381 172.19.0.121:6380 172.19.0.121:6379 172.19.0.121:6381


设置密码。注意,网上很多教程说是修改redis.conf文件,加入masterauth跟requirepass。这样做是可以设置密码,但是fuck,创建集群的时候报错,找遍全网没有带密码创建集群的教程。

还是先创建集群再设置密码吧,谨记!!允许如下命令:

redis-cli -c -h 172.19.0.122 -p 6379

链接redis实例。一共6个,在每个里面分别设置:

config set masterauth eniu#_Yohui#@
config set requirepass eniu#_Yohui#@

ok,完成密码设置,好了,全网有的教程都在这边了,但是phpredis链接redis5的cluster集群模式,怎么设置密码??压根没。单机的是直接auth(密码)。集群的咋办!


phpredis的 RedisCluster类只有五个参数,没有一个是密码,不填写,直接报:

Couldn't map cluster keyspace using any provided seed

搜遍全网全部都是其他的错误。我试过没有密码就不报错,有密码就报错,没有密码系统直接被干掉了,坑爹。

看来是phpredis官方没有提供响应的密码权限啊。如果是内网也就罢了,一台服务器,不开放6379等端口即可,但我要但是多机器多集群模式!!

终于在github上找到了一个解决方法。如下:

https://github.com/yejiansnake/yj-phpredis

要重新编译phpredis。编译之后会在RedisCluster类中加入第六个参数password。然后链接即可。


网友留言评论

2条评论