Redis在3.0版正式引入了集群这个特性。Redis集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis内存K/V服务, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset),比如Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。

Redis集群的几个重要特征:

(1).Redis 集群的分片特征在于将键空间分拆了16384个槽位,每一个节点负责其中一些槽位。

(2).Redis提供一定程度的可用性,可以在某个节点宕机或者不可达的情况下继续处理命令.

(3).Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性(linear scalability)。

安装Redis

通过官网http://redis.io/获取稳定版源码包下载地址;

$ wget http://download.redis.io/releases/redis-3.2.3.tar.gz
$ tar xzf redis-3.2.3.tar.gz
$ cd redis-3.2.3
$ make

注意:

1:可能新linux系统中未安装gcc,通过如下命令安装

apt-get install  build-essential

2:在make时可能出现错误" error: jemalloc/jemalloc.h: No such file or directory",通过如下命令解决。

make MALLOC=libc 

安装Redis-Cluster

首先安装Redis-Cluster依赖库

安装Ruby

apt-get install ruby

安装Redis.gem

gem intall redis

注意:本步骤需要翻/墙,可以先下载到本地,然后再安装,下载地址https://rubygems.org/gems/redis/versions/3.3.1

gem install /usr/downloads/redis-3.3.1.gem

创建Redis-Cluster,并分配Redis节点

按照端口号,依次创建对应文件夹,并配置redis.conf信息

启动redis实例,查看redis进程

注意:若要让集群正常运作至少需要三个主节点,我们的环境中,每个主节点附带一个从节点,所以一共六个节点。

通过redis-trib.rb创建redis集群,命令如下

./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

注意:表示1个salve。redis-trib.rb在redis解压目录src中可以找到。

若要让集群正常运作至少需要三个主节点,我们的环境中,每个主节点附带一个从节点,所以一共六个节点。

创建结果如下图,会提示Can I set the above configuration? (type 'yes' to accept):

输入yes ,然后出现如下图 , [OK] All 16384 slots covered表示创建成功。

检查集群状态,选中其中一个节点即可。

连接Redis集群

注意:节点会对命令请求进行分析和key的slot计算,并且会查找这个命令所要处理的键所在的槽。如果要查找的哈希槽正好就由接收到命令的节点负责处理, 那么节点就直接执行这个命令。另一方面, 如果所查找的槽不是由该节点处理的话, 节点将查看自身内部所保存的哈希槽到节点 ID 的映射记录, 并向客户端回复一个 MOVED 错误。

cluster集群相关命令,更多redis相关命令见文档:http://redis.readthedocs.org/en/latest/

集群
CLUSTER INFO 打印集群的信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
节点
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
槽(slot)
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。
CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。
键
CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。
CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。
CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。  

本文链接: 文章作者:雨~桐 文章出处:http://www.cnblogs.com/piscesLoveCc/ 如果您觉得阅读本文对您有帮助,请点一右下角的“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/piscesLoveCc/p/5779795.html

Ubuntu16.04.1 安装Redis-Cluster相关推荐

  1. Ubuntu16.04下安装Redis数据库

    技术交流QQ群:1027579432,欢迎你的加入! 1.安装redis数据库 安装命令:sudo apt-get install redis-server 2.检查redis服务器系统进程 cdl@ ...

  2. linux如何安装neo4j,Ubuntu16.04 如何安装neo4j数据库

    什么是neo4j数据库? neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis.memcached.mongDB等,不同于传统的关系型数据库,nosql数据也有 ...

  3. ubuntu16.04 下安装Opencv2.4.9

    ubuntu16.04 下安装Opencv2.4.9 OpenCV的源码download from:  https://sourceforge.net/projects/opencvlibrary/? ...

  4. 阿里云云服务器ECS上的Ubuntu16.04桌面安装及root账户登录错误处理

    阿里云云服务器ECS上的Ubuntu16.04桌面安装及root账户登录错误处理 2018-06-28 16:42:45 程百球 阅读数 2793更多 分类专栏: 程序配置 版权声明:本文为博主原创文 ...

  5. 通过Anaconda在Ubuntu16.04上安装 TensorFlow(GPU版本)

    一. 安装环境 Ubuntu16.04.3 LST GPU: GeForce GTX1070 Python: 3.5 CUDA Toolkit 8.0 GA1 (Sept 2016) cuDNN v6 ...

  6. Ubuntu16.04在线安装MongoDB详细教程

    Ubuntu16.04在线安装MongoDB详细教程 文章目录 Ubuntu16.04在线安装MongoDB详细教程 前言 安装流程 信任MongoDB公钥 创建列表文件 安装MongoDB 常见问题 ...

  7. Ubuntu16.04怎样安装Python3.6

    Ubuntu16.04默认安装了Python2.7和3.5 请注意,系统自带的python千万不能卸载! 输入命令python 按Ctrl+D退出python命令行 输入命令sudo add-apt- ...

  8. mongodb安装教程Linux,Ubuntu16.04手动安装MongoDB的详细教程

    我最近在研究MongoDB的路上,那么今天也算个学习笔记吧!今天用Ubuntu16.04手动安装MongoDB,分享给大家 注意事项: 仔细按步骤阅读操作 注意别写错字 牢记上面两点 一.用自带的火狐 ...

  9. Ubuntu16.04 Xmind安装

    Ubuntu16.04 Xmind安装: 官网下载:直接下载不用注册: 到下载目录选择下载文件右键,提取到此处(为登录用户权限):在终端采用root权限解压为root权限(unzip xmind-8- ...

  10. matlab安装好 启动总是闪退_在Ubuntu16.04下安装MATLAB2017b

    1. 前言 最近在折腾Ubuntu系统的高端机子,matlab这家伙的交互和可视化太方便了!于是想在Linux下安装matlab,在各个版本中,matlab2017的性价比是非常高的,因此选择安装介个 ...

最新文章

  1. GdiPlus[12]: IGPLinearGradientBrush 的其他构建方式
  2. python五十二:__setattr__,__delattr__,__getattr__方法
  3. 替换k个字符后最长重复子串
  4. 划重点!十分钟掌握牛顿法凸优化
  5. .ini文件中的PHP 5.6 error_reporting设置不起作用
  6. mfc cstring 写入文件_兄弟Brother单色激光传真一体机MFC系列不能写入此文件夹提示解决方案...
  7. SAP系统和微信集成的系列教程之三:微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据
  8. Interpreter(解释器)--类行为型模式
  9. Exchanger及其用法
  10. 3-5:常见任务和主要工具之归档和备份
  11. 使用PowerShel导入和导出Hyper-v虚拟机
  12. OpenSSL版本号
  13. 站在巨人的肩膀上看Servlet——原来如此(更适合初学者认识Servlet)
  14. ssh 连接保持不中断
  15. 中国城市公园规划建设行业运行状况与趋势预测展望报告2022-2028年版
  16. 计算机学院 统计学博士点,统计学 国家重点学科/博士点/硕士点
  17. 【值得收藏】如此心机的老婆,不难教出一个优秀的女儿。谁娶了都是福。
  18. Linux解压缩解压tar.gz文件
  19. 【Python作业】对股票数据分析处理
  20. 测试数据准备之 CMD 命令:copy(指定尺寸图片1M放大成6M)

热门文章

  1. android c语言串口通信,安卓串口通信能用的modebus CRC16计算,附对应的C语言CRC16
  2. 我的世界java版_我的世界Java版1.15版本
  3. java调用geckofx_Scala学习(三)数组相关操作
  4. Axure函数与属性速查
  5. window.location.href如何多次请求_测试同学必会系列之如何进行幂等性的测试
  6. c gui qt 4编程第二版_一本专门学习PyQt5 GUI编程的书
  7. 第六章节 多态 (多态的概述)
  8. Potentiometers
  9. Codeforces Round #468 (Div. 2): D. Peculiar apple-tree(水题)
  10. bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(切比雪夫距离+multiset贪心+并查集)