linux学习程序员程序园

Redis集群模式

2019-04-27  本文已影响31人  高多金

Redis Cluster提供了一种运行Redis安装的方法,其中数据 在多个Redis节点之间自动分片

Redis Cluster还在分区期间提供一定程度的可用性,实际上是在某些节点发生故障或无法通信时继续运行的能力。但是,如果发生较大的故障(例如,当大多数主设备不可用时),群集将停止运行。

所以实际上,你对Redis Cluster有什么看法?

工作方式:

在redis的每一个节点上,都有这么两个东西,一个是插槽(slot),它的的取值范围是:0-16383。还有一个就是cluster,可以理解为是一个集群管理的插件。当我们的存取的key到达的时候,redis会根据crc16的算法得出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。

为了保证高可用,redis-cluster集群引入了主从模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点。当其它主节点ping一个主节点A时,如果半数以上的主节点与A通信超时,那么认为主节点A宕机了。如果主节点A和它的从节点A1都宕机了,那么该集群就无法再提供服务了。

实际操作

准备环境

192.168.14.10:7000 主服务器

192.168.14.20:7001

192.168.14.30:7002

192.168.14.40:7003

192.168.14.50:7004

192.168.14.60:7005

集群最少有六个节点

六台服务器都进行以下操作

首先我们使用wget拉取tar包

yum -y install gcc gcc-c++ wget
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar zxf redis-3.2.4.tar.gz
cd redis-3.2.4
make && make install 
ls

将 redis-trib.rb 复制到 /usr/local/bin 目录下

redis-trib.rb是我们cluster集群的管理工具 有创建集群 检查集群等功能

cd src
cp redis-trib.rb /usr/local/bin/

之后 我们建立六个节点

vim redis.conf
port  7000                                        //端口7000,7002,7003        
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 

修改以上参数每个服务器节点对应端口号

配置好之后使用redis-server执行配置文件

redis-server redis.conf

使用ps查看

ps -ef |grep redis
root      16011      1  0 11:15 ?        00:00:05 redis-server 192.168.14.10:7000 [cluster]
root      35353   3097  0 12:26 pts/0    00:00:00 grep --color=auto redis

成功

下面我们在主服务器上操作

安装ruby curl

yum -y install ruby ruby-devel rubygems
yum -y install curl

配置rvm的key

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

安装RVM

find / -name rvm
source /usr/local/rvm/scripts/rvm
rvm list known
rvm install 2.4.5
rvm use 2.4.5
rvm remove 2.0.0

安装redis

gem install redis

使用cluster集群管理工具 创建集群

redis-trib.rb  create  --replicas  1192.168.14.10:7000 192.168.14.20:7001 192.168.14.30:7002 192.168.14.40:7003 192.168.14.50:7004 192.168.14.60:7005
上一篇下一篇

猜你喜欢

热点阅读