文档章节

redis-3.0 集群实现原理与安装

captainliu
 captainliu
发布于 2016/07/04 01:23
字数 605
阅读 25
收藏 0

redis3.0集群

   由多个Redis服务器组成的分布式网络服务集群

    每一个Redis服务器称为节点node,节点之间互相通信,两两相连

    Redis集群无中心节点(当向redis中插入数据时根据算法插入到固定的redis节点上,但是其他节点知道此数据在哪个节点上;当查询这条数据时,随机查询某一个节点,当此节点没有此数据,但是此节点知道数据在哪个节点上,就会将请求跳转到指定的节点上) 

Redis集群节点复制

    redis集群节点都有两种角色可选:主节点master  node ,从节点slave  node。其中主节点用于保存数据,从节点是主节点的复制品,当主节点挂掉,从节点可以马上变为主节点。

redis集群分片

这里集群有固定的槽位slot;

 

Redis集群的搭建

    创建多个主节点

    为每个节点指派槽位slot,将多个节点连接起来,组成一个集群

    槽位分片完成后,集群进入上线状态

    6个节点:3个主节点,每个主节点有一个从节点

1、解压

tar  -zxvf redis-3.0xxx.gz

make  

 make PREFIX=/usr/redis  install

mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005

 

在7000-7005目录中放入redis.conf
redis.conf内容如下
cluster-enabled yes
port 700x

启动所有服务,要进入子目录启动服务
# cd 700x
# redis-server redis.conf

# ss -tanl | grep 700
 

创建集群
安装目录src中redis-trib.rb完成集群创建
# yum install ruby rubygems -y

redis模块安装
在线安装
# gem install redis
离线安装
https://rubygems.org/gems/redis
# gem install --local redis-3.3.0.gem

 

在安装目录下的src中(指定master   和  slave)
# ./redis-trib.rb create --replicas 1 192.168.47.21:7000 192.168.47.21:7001 192.168.47.22:7002 192.168.47.22:7003 192.168.47.23:7004 192.168.47.23:7005 192.168.47.24:7006 192.168.47.24:7007

 

在  700x/nodes.conf中的信息


1d6e832b7fa603f831703e4c11dc5da66e4fe148 192.168.47.24:7007 slave 4c25e85ba6bec4bee99c9799bcc8415c17017e63 0 1467639177390 8 connected
4c25e85ba6bec4bee99c9799bcc8415c17017e63 192.168.47.23:7004 master - 0 1467639179437 5 connected 4096-8191
b72c561d126bb11cca0a2f0f3aba5d71f8912acc 192.168.47.21:7001 slave 3d333b5de203329d2113d75b1537e2db0a71fce6 1467639182917 1467639175348 3 connected
5a06d5797216709dde5e8acd0fcd3283f24d5fa4 192.168.47.24:7006 master - 0 1467639180462 7 connected 0-4095
7880208eb5ac5555510dc496b3d48b9390f8cf78 192.168.47.23:7005 slave 5a06d5797216709dde5e8acd0fcd3283f24d5fa4 0 1467639179848 7 connected
54f7b1861d7bfd97617058bf0f3c9aaa2cb43280 192.168.47.21:7000 myself,master - 0 0 1 connected 12288-16383
3d333b5de203329d2113d75b1537e2db0a71fce6 192.168.47.22:7002 master - 0 1467639181485 3 connected 8192-12287
be7b1d4eec9c3e7658dad7cdfad17a23a62b1d31 192.168.47.22:7003 slave 54f7b1861d7bfd97617058bf0f3c9aaa2cb43280 0 1467639182508 4 connected
vars currentEpoch 8 lastVoteEpoch 0

 

客户端连接
redis-cli -p 7000 -c
-c 使用集群模式,允许转向

然后进行测试

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
captainliu
粉丝 10
博文 106
码字总数 83678
作品 0
昌平
程序员
codis集群部署实战

一、概要 1、折腾codis集群已经快两个月了,感谢一直以来codis的作者刘奇和黄东旭的耐心支持,在这里给你们点个赞,现在我司已经有一个业务跑在了codis集群上,目前只是切了整个业务的10%的量...

navyaijm2012
2015/04/23
0
0
RedisCluter集群(一):Redis高可用集群Redis Cluster搭建

原文地址:https://my.oschina.net/lyyjason/blog/1842002 前言: Redis3.0版本之前,可以通过Redis Sentinel(哨兵)来实现高可用 ( HA ),从3.0版本之后,官方推出了Redis Cluster,它的主...

lyyjason
07/07
0
0
redis高可用架构

一、背景 公司的业务在大量的使用redis,访问量大的业务我们有在使用codis集群,redis 3.0集群,说到redis 3.0集群,我们线上已经跑了半年多了,集群本身没有出现过任务问题,但是由于我们这...

navyaijm2012
2016/02/27
0
0
【干货合集】NoSQL技术体系深度解读系列(一):Redis,从技术原理到最佳实践

2018年开年知识盛会——NoSQL数据库直播大讲堂峰会,将于1月19日、23日、25日与大家见面,阿里云Redis、MongoDB、HBase的15位技术专家、产品专家将给大家带来深度的技术及产品分享。本次峰会...

场景研读
01/08
0
0
这可能是最全的 Redis 集群方案介绍了

这可能是最全的 Redis 集群方案介绍了 原创 2016-06-01 曾健生 运维帮 由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用。Redis在3.0版本前只支持单实例模式,虽然现在的服务...

fdhay
2016/06/02
129
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL SQL 常见用法

某字段重复记录 select a.fieldA from tableA a group by a.fieldA having count(a.fieldA)>1;==select * from (select a.fieldA, count(1) as faCount from tableA a group......

园领T
58分钟前
1
0
如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则

以下是如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则。 防火墙 防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会...

linuxprobe16
今天
1
0
发生系统错误 5 拒绝访问

1、使用命令net start *开启一个服务的时候,出现发生系统错误5,拒绝访问。 解决:切换到管理员模式执行此命令即可。

fang_faye
今天
1
0
devops 成长路线

https://36kr.com/p/5157249.html

swingcoder
今天
1
0
Java内存区域的划分和异常

行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域。 程序计数器 线程私有。可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通过改变这个计数值来读...

架构师springboot
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部