Redis(四)-- 集群
一、Redis适合做企业级分布式缓存集群的条件
1.Redis内置哈希槽,有16384个哈希槽(0~16383),根据CRC16算法来确定这个集群中属于哪一个服务器来处理这个请求。
2.Redis提供一个集群管理工具:redis-trib,调度这些集群搭建,将这个集群中的每一组redis服务器联系起来。
二、Redis集群原理
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。集群的每个节点负责一部分hash槽。这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集群不可用的状态。使用哈希槽的好处就在于可以方便的添加或移除节点。当需要增加节点时,只需要把其他节点的某些哈希槽挪到新节点就可以了;当需要移除节点时,只需要把移除节点上的哈希槽挪到其他节点就行了;在这一点上,我们以后新增或移除节点的时候不用先停掉所有的 redis 服务。
三、集群搭建
1.在/usr/java中新建cluster文件夹,然后在cluster文件夹中新建 1000 1001 2000 2001 3000 3001文件夹
cd /usr/java
mkdir cluster
cd cluster
mkdir 1000 1001 2000 2001 3000 3001
2.将redis.conf分别拷贝到1000 1001 2000 2001 3000 3001文件夹中
3.修改redis.conf文件中的
port 1000 //端口1000 1001 2000 2001 3000 3001
bind 本机ip //默认ip为127.0.0.1,需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /usr/java/cluster/1000/redis.pid //pidfile文件的位置,1000文件夹可以更换
logfile /usr/java/cluster/1000/redis.log //日志位置,1000文件夹可以更换
cluster-enabled yes //开启集群
cluster-config-file /usr/java/cluster/1000/nodes.conf //集群的配置
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
4.安装ruby,都说必须要安装ruby2.0以上的,2.0以上自带rubygems包管理器,但我这里安装的是1.8.7,一样也可以。
1)yum install ruby
2)yum install rubygems 安装rubygems包管理器
3)gem install redis gem命令安装redis包,增加redis-trib.rb调用redis的接口包
5.将redis中的src文件夹下的 redis-trib.rb 拷贝到 /usr/local/bin 中,启动redis集群的时候,就不需要 进入到redis/src目录中了
6.启动redis集群,
redis-trib.rb create --replicas 1 192.168.242.130:1000 192.168.242.130:2000 192.168.242.130:3000 192.168.242.130:1001 192.168.242.130:2001 192.168.242.130:3001.
其中,--replicas 1 设置从节点个数,前三个是master,后三个是slave.
7.查看redis进程,ps -ef|grep redis
8.客户端连接,这里连接redis集群 要使用 redis-cli -c -h –p,其中 -c代表集群模式
redis-cli -c -h 192.168.242.130 -p 1000
9.查看集群是否成功:cluster info
10.当在1000中set值后,会看到自动切换到 3000,这是因为 刚刚 set的数据 落到了 3000中。
Redis(四)-- 集群的更多相关文章
- Redis Cluster集群架构实现(四)--技术流ken
Redis集群简介 通过前面三篇博客的介绍<Redis基础认识及常用命令使用(一)--技术流ken>,<Redis基础知识补充及持久化.备份介绍(二)--技术流ken>,< ...
- Redis分布式集群几点说道
原文地址:http://www.cnblogs.com/verrion/p/redis_structure_type_selection.html Redis分布式集群几点说道 Redis数据量日益 ...
- Redis集群(八):Redis Sharding集群
一.Redis目前的集群方案主要有两种:Redis Sharding和Redis Cluster 1.Redis Sharding:3.0以前基本上使用分片实现集群,目前主流方案,客户端实现 2.Re ...
- 【Redis】Redis分布式集群几点说道
Redis数据量日益增大,使用的公司越来越多,不仅用于做缓存,同时趋向于存储这一块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架构,大部分都是采用分片 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- 深入分析redis cluster 集群
深入分析redis cluster 集群安装配置详解 下面小编来为各位介绍一篇深入分析redis cluster 集群安装配置详解,如果你希望做数据库集群就可以来看看此文章的哦. http://rub ...
- 玩转 Redis缓存 集群高可用
转自:https://segmentfault.com/a/1190000008432854 Redis作为主流nosql,在高并发使用场景中都会涉及到集群和高可用的问题,有几种持久化?场景下的缓存策 ...
- Redis Cluster集群主从方案
本文介绍一种通过Jedis和Cluster实现Redis集群(主从)的高可用方案,该方案需要使用Jedis2.8.0(推荐),Redis3.0及以上版本(强制). 附:Redis Cluster集群主 ...
- CentOS7 安装Redis Cluster集群
上一篇中已经讲到了如何安装单击版Redis,这一篇我们来说下如何安装Cluster,关于哨兵模式这里我就不写文章安装了,有兴趣的同学可以自己去研究,哨兵模式可以在主从模式下在创建三台机器的哨兵集群监控 ...
- Redis Cluster搭建高可用Redis服务器集群
一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节 ...
随机推荐
- SharePoint自动化系列——Upload files to SharePoint library using PowerShell.
转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 日常的SharePoint站点测试中,我们经常要做各种各样的数据,今天又写了几个脚本,发现自己写的 ...
- dp之分组背包hdu3535(推荐)
题意:有0,1,2三种任务,0任务中的任务至少得完成一件,1中的任务最多完成1件,2中的任务随便做.每一个任务最多只能做一次 .n代表有n组任务,t代表有t分钟,m代表这组任务有m个子任务,s代表这m ...
- 【转】Visual Studio常用快捷键
Shift+Alt+Enter: 切换全屏编辑 Ctrl+B,T / Ctrl+K,K: 切换书签开关 Ctrl+B,N / Ctrl+K,N: 移动到下一书签 Ctrl+B,P: 移动到上一书签 ...
- win7怎么把软件加入开机启动项
点击开机菜单进入. 2 然后点击菜单栏中的所有程序. 3 在所有程序中找到‘启动’,这个启动就是开机启动项来的. 4 右键进行打开启动项. 5 把快捷方式复制到开机启动项中.如果找不到快捷方式可以右键 ...
- CDH离线安装
1. 安装准备 系统:Centos 6 Cloudera Manager分配如下: 安装版本:CDH-5.8.0 所需安装文件 CDH相关 CDH-5.8.0-1.cdh5.8.0.p0.42-el6 ...
- ThinkPHP3.2 分组分模块
ThinkPHP/Conf/convention.php 'CONTROLLER_LEVEL' => 1, 修改成 'CONTROLLER_LEVEL' => 2,
- 浅谈 JavaScript 编程语言的编码规范
对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散.很容易学习,并运用到自己的代码中.也正因为这样,JavaScript 的编 ...
- 关于矢量图片资源向后兼容:CompatVectorFromResourcesEnabled标志的使用
StackOverflow上摘抄的: some things have changed since I asked this question so I will answer it myself.W ...
- PHP与ASP.NET的优劣比较
PHP与ASP.NET的比较 表 1 PHP 4 PHP5 ASP.NET 软件价格 免费 免费 免费 平台价格 免费 免费 $$ 速度 强 强 弱 效率 强 强 弱 安全性 强 强 强 平台 强 强 ...
- C++中成员变量默认private
struct 默认是 publicclass 默认是 private