赞
踩
1、redis版本要求:3.0及之后版本
2、服务节点个数要求: 至少3个主节点,其中主节点不少于节点总数的一半;至多16384个节点;每个主节点至少有一个从节点,故redis集群模式至少需要6个服务节点。
3、本文档是在一台服务器上启动了6个redis实例进行演示。实际投产部署时,每个节点应该对应一台服务器,每个节点配置为自己主机的IP即可。
注:默认使用root权限账户进行安装部署
1、下载redis,执行指定下载目录(这里下载到/opt下)
[root@localhost ~]# cd /opt
[root@localhost ~]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz
2、解压
[root@rocketmq-slave2 opt]# tar zxvf redis-5.0.7.tar.gz
3、进入解压后的目录
[root@rocketmq-slave2 opt]# cd redis-5.0.7/
4、编译(如编译失败,请升级系统GCC版本)
[root@rocketmq-slave2 redis-5.0.7]# make
5、安装(–PREFIX #指定安装目录)
[root@rocketmq-slave2 redis-5.0.7]# make install PREFIX=/usr/local/redis
6、指定可执行文件路径
[root@rocketmq-slave2 redis-5.0.7]# cd /opt/redis-5.0.7/utils
[root@rocketmq-slave2 utils]# ./install_server.sh
……
慢慢回车
Please select the redis executable path [ ]
手动输入
/usr/local/redis/bin/redis-server
7、创建连接便于系统识别
[root@rocketmq-slave2 utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/
[root@rocketmq-slave2 utils]# /etc/init.d/redis_6379 stop #停止
[root@rocketmq-slave2 utils]# /etc/init.d/redis_6379 start #启动
[root@rocketmq-slave2 utils]# /etc/init.d/redis_6379 restart #重启
[root@rocketmq-slave2 utils]# /etc/init.d/redis_6379 status #状态
8、修改配置/etc/redis/6379.conf 参数
vim /etc/redis/6379.conf 70行,添加 监听的主机地址 bind 127.0.0.1 192.168.223.10 93行,Redis默认的监听端口 port 6379 137行,启用守护进程 daemonize yes 159行,指定 PID 文件 pidfile /var/run/redis_6379.pid 167行,日志级别 loglevel notice 172行,指定日志文件 logfile /var/log/redis_6379.log /etc/init.d/redis_6379 restart
9、配置系统环境变量并刷新
在/etc/profile文件最后一行添加以下内容:
export PATH=$PATH:/usr/local/redis/bin
[root@rocketmq-slave2 redis]# vim /etc/profile
export PATH=$PATH:/usr/local/redis/bin
[root@rocketmq-slave2 redis]# source /etc/profile
1、创建集群配置文件的目录
[root@rocketmq-slave2 redis]# mkdir -p /usr/local/redis-cluster #自行创建目录
[root@rocketmq-slave2 redis]# cd /usr/local/redis-cluster/
[root@rocketmq-slave2 redis-cluster]# mkdir 800{1..6} #自行指定文件名,最好跟端口号对应
2、拷贝配置文件并修改配置文件
cp /%redis解压目录%/redis.conf /usr/local/redis-cluster/8001
[root@rocketmq-slave2 redis-cluster]# cp /opt/redis-5.0.7/redis.conf /usr/local/redis-cluster/8001
[root@rocketmq-slave2 redis-cluster]# vim /usr/local/redis-cluster/8001/redis.conf
配置项说明
daemonize yes: 开启Redis的守护进程,redis服务在后台运行
port 8001: redis端口号,每个配置文件设置自己的端口号;本文档分别配置为 8001、8002 … 8006;
dir /usr/local/redis-cluster/8001/: 设定数据文件存放位置,必须指定不同目 录位置,否则会丢失数据;
cluster-enalbed yes: 启动集群模式;默认是被注释掉的,取消注释;
cluster-config-file nodes-8001.conf: 集群节点信息文件。
默认为 nodes-6379.conf,将6379修改为本节点端口号即可。
注意:尽管有此选项的名称,但这不是用户创建、也不是用户可编辑的配置文件,而是Redis群集节点每次发生更改时自动保留群集配置(基本上为状态)的文件,以便能够在启动时重新读取它。该文件列出了群集中其他节点,它们的状态,持久变量等等。由于某些消息的接收,通常会将此文件重写并刷新到磁盘上。
cluster-node-timeout 5000: 单位:毫秒; Redis群集节点可以不可用的最长时 间,而不会将其视为失败。如果主节点超过指定的时间不可达,它将由其从属设备进行 故障切换。并且每个无法在指定时间内到达大多数主节点的节点将停止接受查询。
bind 127.0.0.1 192.168.161.14: “127.0.0.1”表示主机可通过127.0.0.1和 localhost访问本机节点; “192.168.161.14”是当前主机IP,能够让其它服务器节点访 问,否则无法创建集群;
protected-mode no: redis3.2版本后新增protected-mode配置,默认是yes,即 开启;no:外部网络可直接访问;yes:需配置bind ip或者设置访问密码;
appendonly yes: 开启AOF持久化(Redis能在发生服务器电源故障或操作系统仍 然正常运行但Redis进程莫名挂掉的情况下,只丢失1秒的数据);
注:如要设置密码,则需添加如下两个配置项
requirepass XXX: 设置Redis访问密码;
masterauth XXX: 设置集群节点间访问密码,与requirepass中一致。
修改完 /usr/local/redis-cluster/8001/redis.conf之后,拷贝该文件至其他五个文 件夹中
[root@rocketmq-slave2 redis-cluster]# cd /usr/local/redis-cluster/8001
[root@rocketmq-slave2 8001]# cp redis.conf /usr/local/redis-cluster/8002
[root@rocketmq-slave2 8001]# cp redis.conf /usr/local/redis-cluster/8003
[root@rocketmq-slave2 8001]# cp redis.conf /usr/local/redis-cluster/8004
[root@rocketmq-slave2 8001]# cp redis.conf /usr/local/redis-cluster/8005
[root@rocketmq-slave2 8001]# cp redis.conf /usr/local/redis-cluster/8006
[root@rocketmq-slave2 8001]# vim redis.conf
[root@rocketmq-slave2 8001]# vim /usr/local/redis-cluster/8002/redis.conf
[root@rocketmq-slave2 8001]# vim /usr/local/redis-cluster/8003/redis.conf
[root@rocketmq-slave2 8001]# vim /usr/local/redis-cluster/8004/redis.conf
[root@rocketmq-slave2 8001]# vim /usr/local/redis-cluster/8005/redis.conf
[root@rocketmq-slave2 8001]# vim /usr/local/redis-cluster/8006/redis.conf
新拷贝的五个文件仅修改配置项:port、dir、cluster-config-file 即可
注: 在实际生产部署时,配置项bind为各自节点所在主机服务器的IP
[root@rocketmq-slave2 8001]# cd ..
[root@rocketmq-slave2 redis-cluster]# tree
[root@rocketmq-slave2 redis-cluster]# redis-server /usr/local/redis-cluster/8001/redis.conf &
[root@rocketmq-slave2 redis-cluster]# redis-server /usr/local/redis-cluster/8002/redis.conf &
[root@rocketmq-slave2 redis-cluster]# redis-server /usr/local/redis-cluster/8003/redis.conf &
[root@rocketmq-slave2 redis-cluster]# redis-server /usr/local/redis-cluster/8004/redis.conf &
[root@rocketmq-slave2 redis-cluster]# redis-server /usr/local/redis-cluster/8005/redis.conf &
[root@rocketmq-slave2 redis-cluster]# redis-server /usr/local/redis-cluster/8006/redis.conf &
启动日志如下
查看各节点进程信息
[root@rocketmq-slave2 redis-cluster]# ps -ef | grep redis
命令格式: redis-cli --cluster create --cluster-replicas <主节点与从节点个数比例,当改值为1:创建集群时,一个主节点需要有一个从节点> 节点1IP:端口号 节点2IP:端口号 …
redis-cli --cluster create --cluster-replicas 1 192.168.161.14:8001 192.168.161.14:8002 192.168.161.14:8003 192.168.161.14:8004 192.168.161.14:8005 192.168.161.14:8006
完成
连接集群的任意节点,如: 8001节点 ,其中参数 -c 表示连接集群(如果设置了redis密码,则还需添加参数: -a 密码)
redis-cli -c -h 192.168.161.14 -p 8001
连接redis客户端后: 使用命令cluster info 查看集群信息(cluster_known_nodes:6表示当前集群有6个节点)
连接后: 使用命令cluster nodes查看节点列表信息(master: 3个,slave: 3个)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。