阅读本文需要先阅读安装 Redis <准备>
一 架构细节
所有的 redis 节点彼此互联 (PING-PONG 机制) 内部使用二进制协议优化传输速度和带宽
节点的 fail 是通过集群中超过半数的节点检测失效时才生效
客户端与 redis 节点直连 不需要中间代理层 客户端不需要连接集群所有节点 连接集群中任何一个可用节点即可
redis-cluster 把所有的物理节点映射到 [0-16383]slot 上 cluster 负责维护 (redis 集群中内置了 16384 个哈希槽 当需要在 redis 集群中放置一个 key-value 时 redis 先对 key 使用 crc16 算法算出一个结果 然后把结果对 16384 求余数 这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽 redis 会根据节点数量大致均等的将哈希槽映射到不同的节点)
redis 集群中至少应该有三个节点 要保证集群的高可用 需要每个节点有一个备份机
redis 集群至少需要 6 台服务器
这里我准备了 6 台服务器
120.79.191.xxx 39.108.121.xxx 120.77.148.xxx 39.108.162.xxx 120.79.62.xxx 112.74.54.xxx
二 在六台服务器上分别安装运行 redis
redis 依赖
yum install gcc-c++
解压
cd redis 压缩包所在目录
tar -xvf redis-4.0.10.tar.gz
编译
cd redis 解压包内部 -> cd /hy/redis-4.0.10
- make
- make install PREFIX=/usr/local/redis
配置文件准备
cp /hy/redis-4.0.10/redis.conf /usr/local/redis/bin
编辑 (根据 key 修改 value)
- vim /usr/local/redis/bin/redis.conf
- # 注释掉 bind
- # bind 127.0.0.1
- # 设置后台启动
- daemonize yes
- # 设置集群密码
- masterauth redis12345
- # 设置单机密码
- requirepass redis12345
- # 开启集群
- cluster-enabled yes
- # 设置集群节点超时
- cluster-node-timeout 15000
进入 bin 目录
cd /usr/local/redis/bin
启动
./redis-server redis.conf
三 选择其中一台服务器配置集群
ruby 环境
- yum install curl
- curl -L get.rvm.io | bash -s stable
- gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
- \curl -sSL https://get.rvm.io | bash -s stable
- source ~/.bashrc
- source ~/.bash_profile
- source /usr/local/rvm/scripts/rvm
- rvm list known
- rvm install 2.5.1
- rvm use 2.5.1
安装 ruby 脚本库
cd ruby 脚本库压缩包所在目录
gem install redis-4.0.1.gem
编辑 (根据 key 修改 value)
- vim /usr/local/rvm/gems/ruby-2.5.1/gems/redis-4.0.1/lib/redis/client.rb
- :host => "0.0.0.0",
- :password => "redis12345",
脚本文件准备
cp /hy/redis-4.0.10/src/redis-trib.rb /usr/local/redis/bin
执行脚本命令
cd /usr/local/redis/bin
./redis-trib.rb create --replicas 1 120.79.191.xxx:6379 39.108.121.xxx:6379 120.77.148.xxx:6379 39.108.162.xxx:6379 120.79.62.xxx:6379 112.74.54.xxx:6379
来源: https://www.cnblogs.com/huangyi-427/p/9291990.html