学习Redis集群笔记

来源:互联网 发布:南方全站仪取数据 编辑:程序博客网 时间:2024/05/16 17:53

一、准备环境:

虚拟机:VMware Workstation 12 Pro 12.1.0 build-3272444
Linux:Fedora release 17
在/etc/yum.repos.d/目录下,*.repo文件是yum更新数据仓库地址。
su -c “sed -i ‘s|^#baseurl|baseurl|;s|^mirrorlist|#mirrorlist|’ /etc/yum.repos.d/“*
安装Ruby相关的包
yum install ruby
yum install rubygems
更新RubyGems版本
gem update –system
gem版本
gem -v
2.7.3
添加删除配置源
gem source –add https://gems.ruby-china.org/ –remove https://rubygems.org/
显示当前配置源,确保只有gems.ruby-china.org
gem source -l
安装redis3.3.5的版本,是为了使用redis-trib.rb脚本
gem install redis -v 3.3.5
下载redis-3.2.1.tar.gz包放到/app目录
在/app目录下解压
tar -xvf redis-3.2.1.tar.gz
编译redis
cd redis-3.2.1
make
测试
make test
make install安装编译后redis相关命令至系统相关目录,还可以运行utils目录下的./install_server.sh把redis作为服务开机自动启动。

二、Redis集群搭建:

搭建一个最简单的Redis集群,需要6个节点:3个Master和3个Slave。由于我没有这么多的资源,所以在一个Linux虚拟机上搭建6个节点的Redis集群。基本思路,就是在一台Linux虚拟机上开启6个Redis实例,并且有各自的端口,相当于模拟了6台机器,然后将这6个实例组建Redis集群。

(1)创建6个实例各自存放的目录
P1.png
(2)准备各自的配置文件,原始配置文件在/app/redis-3.2.1/redis.conf
这里写图片描述
这里写图片描述
注意一下,由于在一台机器上模拟,因此需要配置不同的配置文件,每个实例有不同的端口,有自己存放数据的地方;开户AOF模式,开户集群配置,开启后台模式;
(3)启动Redis集群
这里写图片描述
用Ruby脚本创建集群
./redis-3.2.1/src/redis-trib.rb create –replicas 1 192.168.65.128:8001 192.168.65.128:8002 192.168.65.128:8003 192.168.65.128:8004 192.168.65.128:8005 192.168.65.128:8006
这里写图片描述
这里写图片描述
创建集群命令中–replicas 1,代表的是主节点数/从节点数的比例;slot对于Redis集群是一个存放数据的地方,就是一个槽;对于每一个Master,会存在一个slot的范围,而Slave则没有;Master可以读、写,而Slave只读;数据的写入,实际上是分布存储在slot中。
(4)验证Redis集群搭建是否成功
这里写图片描述

三、Redis集群操作实践

(1)数据的分布性
这里写图片描述
数据存储的时候会分配一个slot给变量,而这个slot归属于一个Master,也就是说数据分布存储在Redis集群中。
(2)在线水平扩容
添加2个节点,修改redis.conf文件,启动8007、8008实例。
这里写图片描述
新加的2个redis实例,加入集群
这里写图片描述
./redis-3.2.1/src/redis-trib.rb add-node 新节点 集群中存在的节点
添加新节点的时候,需要提供一个集群中已经存在的节点。
./redis-3.2.1/src/redis-trib.rb reshard 192.168.65.128:8001
这里写图片描述
reshard分片,就是指定一个master节点,从集群的masters上进行重新分配。
同样的方法把8008也加入集群,但是add-node方法加入的节点默认是master节点,利用replicate指定主节点。
这里写图片描述
删除从节点:直接del-node
这里写图片描述
删除主节点:先reshard,后del-node
这里写图片描述
这里写图片描述

四、关闭Redis集群:

./redis-cli -c -h 192.168.65.128 -p 8001 shutdown
./redis-cli -c -h 192.168.65.128 -p 8002 shutdown
./redis-cli -c -h 192.168.65.128 -p 8003 shutdown
./redis-cli -c -h 192.168.65.128 -p 8004 shutdown
./redis-cli -c -h 192.168.65.128 -p 8005 shutdown
./redis-cli -c -h 192.168.65.128 -p 8006 shutdown