由于redis是用源码安装,所以需要安装开发环境
1、下载所需文件:
下载地址:https://download.csdn.net/download/zhy2074/10766569
cpp-4.8.2-16.el7.x86_64.rpm
gcc-4.8.2-16.el7.x86_64.rpm
glibc-2.17-55.el7.x86_64.rpm
glibc-common-2.17-55.el7.x86_64.rpm
glibc-devel-2.17-55.el7.x86_64.rpm
glibc-headers-2.17-55.el7.x86_64.rpm
glibc-static-2.17-55.el7.x86_64.rpm
glibc-utils-2.17-55.el7.x86_64.rpm
kernel-headers-3.10.0-123.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm
mpfr-3.1.1-4.el7.x86_64.rpm
2、创建临时文件夹将以上文件全部拷贝到临时文件夹
3、进入临时文件执行安装:rpm -Uvh *.rpm --nodeps --force
运行此命令会根据依赖按照顺序安装rpm
注:
--nodeps:rpm在安装包时,不检查依赖关系,例如安装B,B依赖C导致无法安装,使用--nodeps就可以安装成功
--force: 强制安装
4、验证安装结果:gcc -v 能看到版本信息代表安装成功
1、官网下载redis5.0.0
下载地址:https://redis.io/download
2、解压redis-5.0.0.tar.gz到指定目录
tar -zxvf redis-5.0.0.tar.gz -C /usr/local
3、编译并安装
cd /usr/local/redis-5.0.0
make
出现如下即编译成功
Hint: It's a good idea to run 'make test' ?
make[1]: Leaving directory `/usr/local/redis-5.0.0/src'
4、在/usr/local/redis-5.0.0/src中执行安装命令:
cd /usr/local/redis-5.0.0/src
make install
安装成功会出现如下日志信息
Hint: It's a good idea to run 'make test' ?
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
此时redis已经安装成功
1、修改redis配置文件
protected-mode no # 关闭保护模式 打开(yes)时下边bind配置才生效
daemonize yes # 守护进程模式开启(后台启动)
#bind 127.0.0.1 #默认只监听本机访问也可以将需要访问的IP空格分隔添加在后面,需要注释掉
cluster-enabled yes #启用集群
cluster-config-file nodes-6379.conf #集群节点配置文件
2、新建集群节点文件夹
此前准备了两台机器:10.1.101.88、10.1.101.89 本文集群试用三主三从六个节点,所以分别在两台机器上创建三个文件夹为:
/u01/redis/cluster/6379
/u01/redis/cluster/6380
/u01/redis/cluster/6381
3、拷贝配置文件
分别将redis.conf拷贝到以上两个文件夹下并修改端口号,可以用一下方法快速完成:
cp /usr/local/redis-5.0.0/redis.conf /u01/redis/cluster/6379/redis_6379.conf
sed 's/6379/6380/g' /usr/local/redis-5.0.0/redis.conf > /u01/redis/cluster/6380/redis_6380.conf
sed 's/6379/6381/g' /usr/local/redis-5.0.0/redis.conf > /u01/redis/cluster/6381/redis_6381.conf
另一台机器做同样的操作
4、启动redis
redis-server /u01/redis/cluster/6379/redis_6379.conf
redis-server /u01/redis/cluster/6380/redis_6380.conf
redis-server /u01/redis/cluster/6381/redis_6381.conf
通过进程查看启动是否成功:ps -ef | grep redis-server
5、启动集群
从redis5.0开始集群管理器从Ruby(redis-trib.rb)移植到C代码,可直接用redis-cli 启动
redis-cli --cluster create 10.1.101.88:6379 10.1.101.89:6379 10.1.101.88:6380 10.1.101.89:6380 10.1.101.88:6381 10.1.101.89:6381 --cluster-replicas 1
1) create #表示创建一个redis集群。
2) --cluster-replicas 1 #表示为集群中的每一个主节点指定一个从节点,即一比一的复制。
运行过程中,会有个提示,输入yes回车即可。从屏幕输出,可以很容易地看出哪些是主(master)节点,哪些是从(slave)节点
6、访问redis集群
redis-cli -c -p 6379 #在单机版redis基础上指定参数“-c”即可
查看集群中的节点:
127.0.0.1:6379> cluster nodes
到此集群已经搭建完毕,可以正常使用了
1、启动集群时报错“[ERR] Node 10.1.101.88:6379 is not configured as a cluster node.”
是因为节点的配置项“cluster-enabled”的值不为“yes”。这时需要将“cluster-enabled”的值改为“yes”,并重启该节点
2、启动集群式报错“[ERR] Sorry, can't connect to node 10.1.101.89:6379”
引起这个问题的原因是从Redis 3.2.0版本开始引入了保护模式(protected mode),防止redis-cli远程访问,要将"protected_mode" 的值改成"no"
3、启动单个节点时报错"Sorry, the cluster configuration file nodes.conf is already used by a different Redis Cluster node."
原因是对应节点配置文件中的 cluster-config-file nodes-6379.conf 没有打开,所以本机上的所有节点都在用nodes.conf