您的位置:首页 > 数据库 > Redis

学习Redis集群笔记

2017-12-15 17:44 274 查看

一、准备环境:

虚拟机: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个实例各自存放的目录



(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis