问题1:
redis:编译时报错 /bin/sh: cc: command not found
解决方案:
yum -y install gcc gcc-c++ libstdc++-devel
问题2:
fatal error: jemalloc/jemalloc.h: No such file or directory
解决方案:
make MALLOC=libc
问题3:
使用make指令编译之后,使用make test进行测试
[root@localhost redis-6.2.1]# make test
cd src && make test
make[1]: Entering directory `/usr/local/servers/redis_cluster/redis-6.2.1/src'
CC Makefile.dep
make[1]: Leaving directory `/usr/local/servers/redis_cluster/redis-6.2.1/src'
make[1]: Entering directory `/usr/local/servers/redis_cluster/redis-6.2.1/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/servers/redis_cluster/redis-6.2.1/src'
make: *** [test] Error 2
解决方案:
解决办法是用yum安装tcl8.5(或去tcl的官方网站http://www.tcl.tk/下载8.5版本,并参考官网介绍进行安装)
yum install tcl
问题4:
redis拒绝连接:Could not connect to Redis at 192.168.xx.xxx:6379: Connection refused
解决方案:
最后发现排错时发现配置文件中bind绑定的只有bind127.0.0.1,
而在配置文件redis.conf中加上 bind 192.168.xx.xxx,即外部可访问的IP地址
之后就能够正常连接了
问题5:
Could not create server TCP listening socket 192.168.52.130:7001: bind: Cannot assign requested address
解决方案:
配置文件中bind参数配置绑定服务器IP,增加了多个IP地址,且为不同的服务器导致报错
bind绑定服务器IP地址,可以绑定服务器实际IP,也可绑定localhost,
需要注意的地方在于:如果在bind配置项中未绑定127.0.0.1,则在使用服务器自身登陆redis时,也须通过“redis-cli -p port1 -h IP地址”的方式登陆。
问题6:
Redis集群一直Waiting for the cluster to join... 再次进行连接时首先需要以下操作
解决方案:
1、在redis.conf配置文件中, cluster-config-file配置项中的集群配置文件名称需要与其它节点的名称保持互斥
2、CentOS服务器中,对firewalld-service,除了对redis的服务端口放开外,对对应端口+10000后的端口也要放开。
如:我在我的Linux服务器上配置的redis端口分别是7001,7002,7003,7004,7005,7006
我对防火墙的操作如下:
firewall-cmd --zone-public --add-port=7001/tcp --permanet
firewall-cmd --zone-public --add-port=17001/tcp --permanet
firewall-cmd --zone-public --add-port=7002/tcp --permanet
firewall-cmd --zone-public --add-port=17002/tcp --permanet
firewall-cmd --zone-public --add-port=7003/tcp --permanet
firewall-cmd --zone-public --add-port=17003/tcp --permanet
firewall-cmd --zone-public --add-port=7004/tcp --permanet
firewall-cmd --zone-public --add-port=17004/tcp --permanet
firewall-cmd --zone-public --add-port=7005/tcp --permanet
firewall-cmd --zone-public --add-port=17005/tcp --permanet
firewall-cmd --zone-public --add-port=7006/tcp --permanet
firewall-cmd --zone-public --add-port=17006/tcp --permanet
systemctl restart firewalld.service