本文主要是在centos7上安装和配置redis集群实战 
参考: 
http://hot66hot.iteye.com/blog/2050676 
集群教程: 
http://redisdoc.com/topic/cluster-tutorial.html#id2

1 安装准备

1.1 下载redis3.0版本

到redis官网redis.io或者redis中文官网www.redis.cn上(http://www.redis.cn/download.html)去下载最新的版本,我下载的是redis3.0.3版本,下载后,解压,make后,在src下已经生成redis-cli,redis-server等可执行文件 
将redis-cli,redis-server,redis-trib.rb cp一个到/usr/bin下或者你目录的bin下

1.2 redis 集群安装

  1. 安装ruby 
    由于redis-trib.rb是用ruby写的,所以需要安装ruby,在联网的方式上,使用

    • yum install -y ruby
    • 安装完成后,使用ruby --version查看ruby是否正确安装,当前我安装的版本是(ruby 2.0.0p598)
  2. 安装rubygem 
  3. 安装gem-redis 

2 启动集群

  • 启动redis实例

在这里用最简单的例子,启动3个redis实例,端口分别为7000,7002,7003,修改对应配置,并且进行启动 
修改配置主要包括:

- 端口:修改对应成7000,7001,7002
- 对应的log,pid,data目录
- 集群配置:
cluster-enabled yes
cluster-config-file nodes-700x.conf #集群在启动时会自动生成
cluster-node-timeout 5000
  • 启动redis集群

    ./redis-trib.rb create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002

    启动集群时,会有如下一些提示:

    Creating cluster 
    Connecting to node 127.0.0.1:7000: OK 
    Connecting to node 127.0.0.1:7001: OK 
    Connecting to node 127.0.0.1:7002: OK 
    Performing hash slots allocation on 3 nodes... 
    Using 3 masters: 
    127.0.0.1:7000 
    127.0.0.1:7001 
    127.0.0.1:7002 
    M: 36fce4bf6c829797c433c08b045a8c482e07fbc1 127.0.0.1:7000 
    slots:0-5460 (5461 slots) master 
    M: 7e46925ca9781a403facf450aa0b4b8149ad9c27 127.0.0.1:7001 
    slots:5461-10922 (5462 slots) master 
    M: e89c01d7cc2a83f072f66d0c2fb1f5cd92c66888 127.0.0.1:7002 
    slots:10923-16383 (5461 slots) master 
    Can I set the above configuration? (type 'yes' to accept): yes 
    Nodes configuration updated 
    Assign a different config epoch to each node 
    Sending CLUSTER MEET messages to join the cluster 
    Waiting for the cluster to join.. 
    Performing Cluster Check (using node 127.0.0.1:7000) 
    M: 36fce4bf6c829797c433c08b045a8c482e07fbc1 127.0.0.1:7000 
    slots:0-5460 (5461 slots) master 
    M: 7e46925ca9781a403facf450aa0b4b8149ad9c27 127.0.0.1:7001 
    slots:5461-10922 (5462 slots) master 
    M: e89c01d7cc2a83f072f66d0c2fb1f5cd92c66888 127.0.0.1:7002 
    slots:10923-16383 (5461 slots) master 
    [OK] All nodes agree about slots configuration. 
    Check for open slots... 
    Check slots coverage... 
    [OK] All 16384 slots covered.

  • 使用客户端连接集群 
    使用redis-cli客户端连接集群

    [root@bogon bin]# ./redis-cli -c -p 7001 
    127.0.0.1:7001> set a b 
    -> Redirected to slot [15495] located at 127.0.0.1:7002 
    OK 
    127.0.0.1:7002> set c d 
    -> Redirected to slot [7365] located at 127.0.0.1:7001 
    OK 
    其中redis-cli -c标志表示连接的是一个集群,通过set方式可以看出,会将key进行crc16后hash分片到不同的redis实例上,redis-cli会通过跟redis集群进行交互,把key基于hash分片,把请求自动转到不同的实例上

 

3 安装时遇到的其它问题

3.1 执行./redis-trib.rb时提示 json/pcre not fount

这个表示redis-trib.rb依赖的json_pure在机器中不存在:

- 到官网http://rpmfind.net/linux/RPM/opensuse/13.1/x86_64/rubygem-json_pure-1.8.0-2.1.2.x86_64.html,下载对应的rpm包
- json_pure的rpm包需要依赖其它rpm包,如下,如果安装json_pure失败,需要根据提示,下载依赖的rpm包并进行安装
/usr/bin/ruby
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) >= 4.0-1
ruby(abi) >= 2.0.0
rpmlib(PayloadIsLzma) >= 4.4.6-1

redis3.0 集群实战1 -- 安装和配置的更多相关文章

  1. redis3.0 集群实战3 - java编程实战

    本文主要描述使用jedis进行redis-cluster操作   jedis jedis是redis官方推荐使用的java redis客户端,github地址为,https://github.com/ ...

  2. redis3.0 集群实战2 - 集群功能实战

    1 集群基本操作   1.1 查看当前集群状态 使用redis-trib.rb check功能查看对应的节点的状态: [root@bogon bin]# ./redis-trib.rb check 1 ...

  3. redis3.0 集群在windows上的配置(转)

    1. 安装Redis版本:win-3.0.501https://github.com/MSOpenTech/redis/releases页面有,我下载的是zip版本的:Redis-x64-3.0.50 ...

  4. Dubbo入门到精通学习笔记(十八):使用Redis3.0集群实现Tomcat集群的Session共享

    文章目录 1.单节点访问http://192.168.1.61:8082/pay-web-boss/: 2.增加多一个消费者节点:192.168.1.62,以同样的方式部署pay-web-boss工程 ...

  5. redis3.0集群搭建

    生产环境中准备使用redis3.0集群了,花了一天时间研究了一下,下面记录一下集群搭建的过程. 服务器规划: 192.168.116.129    7000,7003 192.168.116.130 ...

  6. redis3.0集群部署和测试

    redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...

  7. Redis3.0集群方案分析

    在Redis3.0集群出来之前,大家都对作者antirez寄予厚望,因为Redis从来没有让我们失望过.现在Redis3.0集群出来了,网上出了很多评论文章,都说他的功能多么强大,包括下面这张图是彻底 ...

  8. 理解 OpenStack Swift (1):OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

  9. redis3.0.5在linux上安装与配置

    redis3.0.5在linux上安装与配置 rhel6/ubuntu14 1 下载 # wget http://download.redis.io/releases/redis-3.0.5.tar. ...

随机推荐

  1. HTML5新特性之移动设备API

    为了更好地为移动设备服务,HTML5推出了一系列针对移动设备的API. 1.Geolocation API Geolocation接口用于获取用户的地理位置.它使用的方法基于GPS或者其他机制(比如I ...

  2. c和c++关于const的一些区别

    以下参考了网上的一些资料并通过程序验证. 注意,以下情况都是用gcc和g++编译器得到的结果,用vs编译器又会有所不同. 以下说下c和c++中const定义的常量的一些区别: c++中用const定义 ...

  3. php socket

    socket demo代码如下 : server: server.php <?php //phpinfo(); //确保在连接客户端时不会超时 set_time_limit(0); $ip = ...

  4. Codeforces Round #184 (Div. 2) E. Playing with String(博弈)

    题目大意 两个人轮流在一个字符串上删掉一个字符,没有字符可删的人输掉游戏 删字符的规则如下: 1. 每次从一个字符串中选取一个字符,它是一个长度至少为 3 的奇回文串的中心 2. 删掉该字符,同时,他 ...

  5. WebKit内核分析之Page

    参考地址:http://blog.csdn.net/dlmu2001/article/details/6213377 注:本系列博客是在原博主博客基础上增加了自己的理解和片段,可以看源博文获得清晰的结 ...

  6. WebKit内核分析之FrameLoader

    参考地址:http://blog.csdn.net/dlmu2001/article/details/6168545 FrameLoader类负责一个Frame的加载,在Frame的流程中起到非常重要 ...

  7. 【原创】MYSQL++源码剖析——前言与目录

    终于完成了! 从第一次想写到现在真的写好大概花了我3个月时间.原来一直读人家的系列文章,总感慨作者的用心良苦和无私奉献,自己在心里总是会觉得有那么些冲动也来写一个. 最开始的麻烦是犹豫该选哪个主题.其 ...

  8. Simplified CommonJS wrapper 与 AMD 标准定义模块差异

    标准的 AMD 模块定义 一个标准的 AMD 模块看起来是这样子: define(['foo', 'foo/bar'], function (foo, bar) { return { doSometh ...

  9. NGUI之UIRoot屏幕分辨率自适应

    NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢? 先简单看一下UIRoot中的基本属性 U ...

  10. [转载]SharePoint 2013搜索学习笔记之自定义结果源

    搜索中心新建好之后在搜索结果页上会默认有所有内容,人员,对话,视频这四个结果分类,每个分类会返回指定范围的搜索结果,这里我再添加了部门日志结果分类,搜索这个分类只会返回部门日志内容类型的搜索结果,要实 ...