4 redis集群概念
4.1 为什么需要用到集群
全量数据, 量很大,一台机器没有办法全部处理完,所以需要多台机器同时处理,才能达到我们想要的效果
就类似于一大车货物,通过5辆马车来运输
4.2 redis集群槽位概念
虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有的数据映射到一个固定范围内的整数集合,整数定义为槽(slot)。
Redis Cluster槽的范围是0~16383。
槽是集群内数据管理和迁移的基本单位。采用大范围的槽的主要目的是为了方便数据的拆分和集群的扩展,
每个节点负责一定数量的槽。
4. redis集群配置
4.1 准备六个节点
cd /opt/jq
vim redis-7000.conf
vim redis-7001.conf
vim redis-7002.conf
vim redis-7003.conf
vim redis-7004.conf
vim redis-7005.conf
写入配置
port 7000
daemonize yes
dir "/data/jq/7000"
logfile "7000.log"
dbfilename "dump-7000.rdb"
cluster-enabled yes
cluster-config-file nodes-7000.conf
这6个节点配置文件都一样,仅仅是端口的不同
[root@qishi666 jq]# sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf
[root@qishi666 jq]# sed "s/7000/7002/g" redis-7000.conf > redis-7002.conf
[root@qishi666 jq]# sed "s/7000/7003/g" redis-7000.conf > redis-7003.conf
[root@qishi666 jq]# sed "s/7000/7004/g" redis-7000.conf > redis-7004.conf
[root@qishi666 jq]# sed "s/7000/7005/g" redis-7000.conf > redis-7005.conf
创建这六个节点的文件目录
mkdir -p /data/jq/{7000,7001,7002,7003,7004,7005}
4.2 启动这六个节点
cd /opt/jq
redis-server redis-7000.conf
redis-server redis-7001.conf
redis-server redis-7002.conf
redis-server redis-7003.conf
redis-server redis-7004.conf
redis-server redis-7005.conf
4.3 随便进入一个redis交互模式,写入数据,发现无法写入
报错,没有分配哈希槽
4.4 准备ruby环境,安装ruby并执行redis-trib.rb脚本
分配redis集群状态,以及槽位分配,互联网企业,豆瓣公司开源的一个工具
1 下载、编译、安装Ruby
# 下载ruby
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
# 安装ruby
tar -xvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure --prefix=/opt/ruby/
make && make install
4.5 配置ruby环境
4.5.1 配置ruby环境变量
vim /etc/profile
在PATH=后面添加ruby的环境变量路径
PATH=/opt/ruby/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
4.5.2 安装rubygem redis
wget http://rubygems.org/downloads/redis-3.3.0.gem
4.5.3 使用gem安装redis-3.3.0.gem工具
gem install -l redis-3.3.0.gem
4.5.4 安装redis-trib.rb命令
当然,这一步并不是必须的,你可以找到redis的安装目录/opt/redis/src下,去执行这个脚本
cp /opt/redis/src/redis-trib.rb /usr/local/bin/
4.6 安装ruby gem 包管理工具
4.6.1 下载gem包
wget http://rubygems.org/downloads/redis-3.3.0.gem
4.6.2 安装
gem install -l redis-3.3.0.gem
4.7 一键开启redis-cluster集群
4.7.1 一条命令开启集群
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
# 每个主节点,有一个从节点,代表--replicas 1
# 集群自动分配主从关系 7000、7001、7002为主 7003、7004、7005为从
4.7.2 查看集群状态
4.8 进入集群状态
redis-cli -p 7000 -c