准备工作
开发公司原则上需要“三主三从”开发公司构成一个基本的集群,开发公司由于硬件条件有限,开发公司目前只能在一个虚拟机搞“伪集群”。
开发公司不同主机构建的集群和“伪集群”的差别:
- 需要注意主机的IP联通和端口是否开放
准备硬件
-
每个redis node节点采用相同的硬件配置、相同的密码、相同的redis版本
-
开放端口:20880-20885
-
创建目录:/home/peihui/cluster_redis,建立子目录,以redis+端口号区分
-
复制后需要查看bin目录下的文件是否有执行权限
部署Redis
- 跟单机一样下载Redis和解压安装
- 修改redis.conf文件配置,与单机配置的区别:
# 绑定该主机IPbind 0.0.0.0# Redis节点 连接端口port 20880# 守护进程daemonize no# 数据文件存放位置dir /home/peihui/cluster_redis/redis_20880/data/# 开启集群cluster-enabled yes# 与端口对应cluster-config-file nodes-20880.confcluster-node-timeout 15000# 主从连接密码,与requirepass配置项一致masterauth 123456# 开启AOF模式(可选)appendonly yes# 添加日志文件,记得先添加改redis目录(可选)logfile "/var/log/redis/redis-server-20880.log"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
-
将该节点信息拷贝到其余节点目录,修改配置对应信息
-
启动所有节点的Redis
-
检查启动情况:ps -el | grep redis
此时往节点添加键值会报错,因为集群需要分配 slot(槽)。Redis需要一次性把16384个槽位完全分配了,集群才可用,否则少一个槽位都会挂。192.168.5.32:20880> set name yangpeihui(error) CLUSTERDOWN Hash slot not served
- 1
- 2
- 3
构建集群
-
安装ruby
yum install ruby rubygems -ygem install redis# 新版redis中,redis-trib.rb工具的功能都被集成在了redis-cli里,但依然需要ruby环境
- 1
- 2
- 3
- 4
-
启动集群自动化
# 旧版命令redis-trib.rb create --replicas 1 192.168.5.32:20880 192.168.5.32:20881 192.168.5.32:20882 192.168.5.32:20883 192.168.5.32:20884 192.168.5.32:20885# 新版命令/home/peihui/cluster_redis/redis_20880/bin/redis-cli --cluster create 192.168.5.32:20880 192.168.5.32:20881 192.168.5.32:20882 192.168.5.32:20883 192.168.5.32:20884 192.168.5.32:20885 --cluster-replicas 1
- 1
- 2
- 3
- 4
应用
在.NET应用
#链接字符串192.168.5.32:20880,192.168.5.32:20881,192.168.5.32:20882,192.168.5.32:20883,192.168.5.32:20884,192.168.5.32:20885,password=123456,abortConnect=false
- 1
- 2