redis集群搭建

redis集群搭建

霸气de小男生 提交于 2019-11-26 14:27:15
安装及编译 [root@server1 ~]# tar zxf redis-5.0.3.tar.gz [root@server1 ~]# cd redis-5.0.3/ [root@server1 redis-5.0.3]# make && make install [root@server1 utils]# ./install_server.sh ##选择默认即可 创建目录rediscluster并建立六个以端口号为名的子目录 在各目录内编写redis.conf的配置文件,以7001为例 开启实例 编写其余五个配置文件并执行命令然后查看其进程服务 搭建集群 配置redis-trid.rb环境 安装ruby [root@server1 ~]# yum install -y ruby [root@server1 ~]# redis-cli --cluster create --cluster-replicas 1 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 127.0.0.1:7006##搭建集群 搭建时会列出各个节点的角色,如果确认的话便搭建完成。 测试,使用redis-cli或者redis-rb-cluster进行测试 [root@server1 ~]# redis-cli

Redis Cluster 集群搭建

时光毁灭记忆、已成空白 提交于 2019-11-26 13:00:30
什么是 Redis-Cluster 为何要搭建 Redis 集群。 Redis 是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着 Redis 不适合存储大数据,适合存储大数据的是 Hadoop 生态系统的 Hbase 或者是 MogoDB 。 Redis 更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。 Redis 集群搭建的方式有多种,例如使用 客户端分片、 Twemproxy 、 Codis 等,但从 redis 3.0 之后版本支持 redis-cluster 集群 ,它是 Redis 官方提出的解决方案 , Redis-Cluster 采用无中心结构,每个节点保存数据和整个集群状态 , 每个节点都和其他所有节点连接。其 redis-cluster 架构图如下: 客户端与 redis 节点直连 , 不需要中间 proxy 层 . 客户端不需要连接集群所有节点连接集群中任何一个可用节点即可。 所有的 redis 节点彼此互联 ( PING-PONG 机制 ), 内部使用二进制协议优化传输速度和带宽 . 分布存储机制 - 槽 ( 1 ) redis-cluster 把所有的物理节点映射到 [0-16383]slot 上 ,cluster 负责维护 node<->slot<->value (2)Redis

Redis系列9: redis集群高可用

孤街浪徒 提交于 2019-11-26 12:22:51
Redis集群的概念:   RedisCluster是redis的分布式解决方案,在3.0版本后推出的方案,有效地解决了Redis分布式的需求,当一个服务挂了可以快速的切换到另外一个服务,当遇到单机内存、并发等瓶颈时,可使用此方案来解决这些问题 一、 分布式数据库概念 1. 分布式数据库把整个数据按分区规则映射到多个节点,即把数据划分到多个节点上,每个节点负责整体数据的一个子集。比如我们库有900条用户数据,有3个redis节点,将900条分成3份,分别存入到3个redis节点 2. 分区规则: 常见的分区规则哈希分区和顺序分区, redis 集群使用了哈希分区 ,顺序分区暂用不到,不做具体说明; rediscluster采用了哈希分区的 “虚拟槽分区” 方式(哈希分区分节点取余、一致性哈希分区和虚拟槽分区),其它两种也不做介绍,有兴趣可以百度了解一下 3. 虚拟槽分区(槽:slot) RedisCluster采用此分区,所有的键根据哈希函数(CRC16[key]&16383)映射到0-16383槽内,共16384个槽位,每个节点维护部分槽及槽所映射的键值数据 哈希函数: Hash()=CRC16[key]&16383 按位与 槽与节点的关系如下 redis用虚拟槽分区原因:解耦数据与节点关系,节点自身维护槽映射关系,分布式存储 4. redisCluster的缺陷: a

redis5集群扩容-增加主从节点

核能气质少年 提交于 2019-11-26 01:46:40
回顾上节 redis cluster集群入门 已经搭建完成的集群节点 b3363a81c3c59d57143cd3323481259c044e66d2 192.168.8.196:5006@15006 slave 1b7aa419065c5477c0def9d5e25106963fbdda76 0 1572917132045 6 connected 9dc870942555447543694e42e40061823ed91271 192.168.8.196:5004@15004 slave d1a4b1aa3e924a5917efc240cdb2e3ada39e01c2 0 1572917130038 4 connected 1b7aa419065c5477c0def9d5e25106963fbdda76 192.168.8.196:5003@15003 master - 0 1572917131041 3 connected 10923-16383 b1b67d4e554e29605bdbe40deab6670a42dd8836 192.168.8.196:5002@15002 master - 0 1572917130000 2 connected 5461-10922 fbf9f23ecf0fea399debf7db42c73fece04b98fd 192.168.8.196

Redis 集群--------Redis-cluster

时光毁灭记忆、已成空白 提交于 2019-11-25 19:57:22
1集群方案 1.官方方案redis-cluster搭建实战 2.客户端分片技术(不推荐),扩容/缩容时,必须手动调整分片程序,出现故障不能自动转移 3.可以使用主从复制方式(不推荐) 4.使用一些代理工具 我们知道主从复制方式实现集群,性能不是很好,因为只有一个master,其他都是slave,slave上只能符读,而且都是master 的备份信息,所以比较冗余 所以我们官方推荐的Redis-cluster来实现集群。 2,Redis-cluster 实现原理 3,搭建集群环境 安装部署任何一个应用其实都很简单,只要安装步骤一步一步来就行了。下面说一下 Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式)。 创建文件夹 我们计划集群中 Redis 节点的端口号为 9001-9006 ,端口号即集群下各实例文件夹。数据存放在 端口号/data 文件夹中。 mkdir /usr/local/redis-cluster cd redis-cluster/ mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data 复制脚本 在 /usr/local/redis-cluster 下创建 bin 文件夹,用来存放集群运行脚本,并把安装好的 Redis 的 src 路径下的运行脚本拷贝过来。看命令: