Redis集群环境安装指南

环境

RHLinux-6.4-64-EN, 红帽6.4 64位,英文正式发布版。

 

Redis3.0.0

  • redis2.x版本还不支持集群,3.0版本将会支持,现在3.0版本还在开发中,现在是beta-3版本(截止2014-5-8),但功能是可用的。
  • 下载Redis3.0.0 beta-3版本,点击这里下载。
  • Redis3的安装可以参照之前的单机安装指南操作。

创建Redis集群实例

  • 创建集群节点的文件夹,先创建cluster-test文件夹,再以端口为名称创建子文件夹。这里我们要创建6个Redis实例,3个作为master,3个作为slave。
1
2
3
mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005
  • 在每个文件夹下面创建创建Redis配置文件,注意根据不同实例的端口号修改下面的配置文件,nodes.conf文件为Redis实例启动时自动生成。
1
2
3
4
5
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
  • 开6个terminal窗口,分别启动这6个Redis实例。
1
2
cd 7000
../redis-server ./redis.conf
  • 当成功启动后,能看到每个terminal出现下面的字样,是因为node.conf文件不存在,所以给每个实例分配了一个新的ID。
1
[82462] 26 Nov 11:56:55.329 * No cluster configuration found, I'm 97a3a64667477371c4479320d683e4c8db5858b1

创建集群

  • 现在Redis的6个实例都已经启动了,现在来开始创建集群。创建集群用到了一个ruby文件,放在redis3目录的src子目录下,找到后执行以下命令。这里的-replicas 1表示每个master配备1个slave,后面的参数就是6个实例的ip加端口,以空格隔开。
1
2
3
cd redis-3.0.0-beta3/src
./redis-trib.rb create --replicas 1 127.0.0.1:7000 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
  • 执行命令后会提示你是否接受提示的配置信息,默认的是前3台作为master机器,后3台作为slave机器,输入yes,出现最后的信息表示集群已经创建好了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK
Connecting to node 127.0.0.1:7005: OK >>>
Performing hash slots allocation on 6 nodes...
Using 3 masters: 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002
127.0.0.1:7000 replica #1 is 127.0.0.1:7003
127.0.0.1:7001 replica #1 is 127.0.0.1:7004
127.0.0.1:7002 replica #1 is 127.0.0.1:7005
M: 9991306f0e50640a5684f1958fd754b38fa034c9 127.0.0.1:7000 slots:0-5460 (5461 slots) master
M: e68e52cee0550f558b03b342f2f0354d2b8a083b 127.0.0.1:7001 slots:5461-10921 (5461 slots) master
M: 393c6df5eb4b4cec323f0e4ca961c8b256e3460a 127.0.0.1:7002 slots:10922-16383 (5462 slots) master
S: 48b728dbcedff6bf056231eb44990b7d1c35c3e0 127.0.0.1:7003
S: 345ede084ac784a5c030a0387f8aaa9edfc59af3 127.0.0.1:7004
S: 3375be2ccc321932e8853234ffa87ee9fde973ff 127.0.0.1:7005
Can I set the above configuration? (type 'yes' to accept): yes
Nodes configuration updated >>>
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: ebbb890e899244e4a2a6303826a29543ebf9885d 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: ebbb890e899244e4a2a6303826a29543ebf9885d 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: 73c22198cd1d0782ec24e3c9b03378030891c9a3 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
M: c785d85b95d7bdc28ec90384ab8a5885b289542c 127.0.0.1:7003
   slots: (0 slots) master
   replicates b949ea2d9c822ff069521a354b4ed48855ac6203
M: 570c472fe553ba3c9d0fb3ba16fcdb8579b4fc86 127.0.0.1:7004
   slots: (0 slots) master
   replicates ebbb890e899244e4a2a6303826a29543ebf9885d
M: f86667ec42cff41a5666162a912713173f5306d7 127.0.0.1:7005
   slots: (0 slots) master
   replicates 73c22198cd1d0782ec24e3c9b03378030891c9a3
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

PS: 安装过程还发现RedHat系统上没有安装ruby,需要先安装ruby,而且公司机器还不能上网下载安装,只能通过离线的方式安装ruby,这里有离线安装的文档可以参考一下:https://rvm.io/rvm/offline

验证

可以使用Redis3.0的redis-cli客户端进行验证,需要加上-c参数,表示集群的意思。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ redis-cli -c -p 7000
redis 127.0.0.1:7000> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7002
OK
redis 127.0.0.1:7002> set hello world
-> Redirected to slot [866] located at 127.0.0.1:7000
OK
redis 127.0.0.1:7000> get foo
-> Redirected to slot [12182] located at 127.0.0.1:7002
"bar"
redis 127.0.0.1:7000> get hello
-> Redirected to slot [866] located at 127.0.0.1:7000
"world"

更多的资料可以参考这里:http://redis.io/topics/cluster-tutorial

时间: 2025-01-30 13:33:26

Redis集群环境安装指南的相关文章

redis之(十六)redis的cluster集群环境的搭建,转载

最近redis已经比较火了,有关redis的详细介绍,网上有一大堆,我这里只作简单的介绍,然后跟大家一起学习Redis Cluster 3.0的搭建与使用.Redis是一款开源的.网络化的.基于内存的.可进行数据持久化的Key-Value存储系统.它的数据模型建立在外层,类似于其 它结构化存储系统,是通过Key映射Value的方式来建立字典以保存数据,有别于其它结构化存储系统的是,它支持多类型存储,包括String. List.Set.Sort set和Hash等,你可以在这些数据类型上做很多原

Redis集群技术及Codis实践

Redis集群技术及Codis实践 前言 本文主要讨论Redis集群相关技术及新发展,关于Redis运维等内容,以后另开主题讨论. 本文重点推荐Codis--豌豆荚开源的Redis分布式中间件(该项目于4个月前在GitHub开源,目前star已超过2100).其和Twemproxy相比,有诸多激动人心的新特性,并支持从Twemproxy无缝迁移至Codis. 好吧我们正式开始. 1. Redis常见集群技术 长期以来,Redis本身仅支持单实例,内存一般最多10~20GB.这无法支撑大型线上业务

一步一个脚印:解密唯品会中Redis集群架构演进与功能定制

在2016杭州云栖大会的"开源数据库之Redis专场"上,来自唯品会的高级数据工程师申政带来了题为<Redis在唯品会的应用实践>的精彩分享.分享中,他主要介绍Redis集群架构演进.Redis使用经验以及唯品会对Redis二次开发实践积累三部分,干货满满,精彩不容错过. 以下内容根据演讲PPT及现场分享整理. Redis集群架构演进 目前在唯品会内对Redis的使用属于重量级别,目前在唯品会内大概有8000个Redis实例.1000台物理机.500个应用. 上图是唯品会对

CAS Client集群环境的问题及解决方案

[原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源] 之前写过一篇文章,介绍单点登录的基本原理.这篇文章重点介绍开源单点登录系统CAS的登录和注销的实现方法.并结合实际工作中碰到的问题,探讨在集群环境中应用单点登录可能会面临的问题.这篇文章在上一篇的基础上,增加了第四部分,最终的解决方案. 1 单点登录的过程 为了描述方便,假设有如下一个单点登录系统.一套CASServer,两套CAS Client系统.为了描述的方便,省略CAS Server调用用户系统完成登录,以及CASClien

《Redis官方教程》Redis集群规范

原文链接(on 20 Jul)  作者:antirez  译者:carlvine   Redis集群规范 欢迎来到Redis集群规范.在这里你可以找到有关Redis的算法和设计的基本原理.这篇文章是一项正在进行的工作,因为它是不断地与Redis的实际实现同步.   主要属性和设计原理 Redis的集群目标   Redis集群是一个分布式的实现,具有以下目标,按设计的重要性排序: 高性能,并且多达1000个节点的线性可扩展性.没有代理,使用异步复制,并且在进行赋值时没有合并操作. 可接受程度的写安

基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常

redis集群

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU ev

《Redis官方教程》Redis集群规范(二)

心跳数据包内容 Ping 和 Pong 数据包都包含着一个头部(header),这在这类数据包(比如请求投票的数据包)中是很常见的.一个特殊的 报文片段就是 Ping 包和 Pong 包里一个特殊部分. 常见头部会包含以下这些信息: 节点 ID,在节点第一次创建的时候赋值的一个 160 bit 的伪随机字符串,在Redis 集群节点永远都保持不变. currentEpoch和 configEpoch 两个字段,用来挂载 Redis 集群使用的分布式算法(这会在下一节中详细解释).如果节点是sla

Linux_基于Docker搭建Redis集群

说明:基于Ubuntu16.04-64bit,开始本教程前,请确保您的Linux系统已安装Docker. 步骤一:Redis镜像安装 1.下载Redis镜像 镜像中心 推荐使用网易蜂巢的镜像中心 地址:https://c.163.com/hub#/m/home/  Redis镜像 docker pull hub.c.163.com/library/redis:latest  安装完成后,使用docker images命令,查看是否安装成功 步骤二:Redis集群搭建 1.运行Redis镜像 分别