`
tcspecial
  • 浏览: 911512 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

redis cluster搭建

阅读更多

    redis 终于推出正式的集群解决方案,最新稳定版本v3.0.2。集群实现目的将不同的key分散到不同的节点上,传统哈希算法hash(key)%n,不适用于添加和删除节点场景,会导致大量的key无法命中,扩展比较困难。redis 没有采用一致性hash,而采用哈希槽( hash slot ) 方式来实现数据共享。

    具体算法:crc16( key )%16384,从而将 16384 个槽分配至不同的节点上。 

 

环境准备:

192.168.5.8     三个redis服务,分别监听 7000 70001 70002  端口

192.168.5.14   三个redis服务,分别监听 7003 70004 70005  端口  

 

一. 配置

#redis.conf
port 7000				#监听端口,集群间通信端口为 10000+7000
cluster-enabled yes		#启用集群
cluster-config-file nodes-7000.conf                    #指定节点配置文件,由redis自动生成管理
cluster-node-timeout 5000				#节点间通信最大超时时间
appendonly yes							#启动aof持久化模式
    

二. 运行

 

192.168.5.8 上启动三个redis实例,分别监听7000,7001,7002 三个端口。192.168.5.14启动实例监听7003,7004,7005三个端口。 

mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 
 
mkdir 7003 7004 7005
 
cd 7000
./redis-server redis.conf 

 

三. 集群

cd $REDIS_SRC/src 
./redis-trib.rb create --replicas 1 192.168.5.14:7000 192.168.5.14:7001 192.168.5.14:7002 192.168.5.8:7003 192.168.5.8:7004 192.168.5.8:7005

   选项 --replicas 1 为每个主机创建一个相应的备机

 

运行该脚本报错,没有配置ruby环境。

./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)

from ./redis-trib.rb:24

 

方法一:用yum安装

 

#yum源安装ruby
yum install -y ruby
yum install -y rubygems
 
# 安装redis库
gem install redis   
ERROR:  could not find gem redis locally or in a repository       #又被墙了,可恶
 
#下载redis库并安装
wget https://rubygems.org/downloads/redis-3.2.1.gem
gem source
gem source -a http://rubygems.org/
gem install redis-3.2.1.gem 
    运行上述命令,报错:[ERR] Sorry, can't connect to node 192.168.5.14:7000,ruby 1.8.5 (2006-08-25) [i386-linux]。运行客户端 ./redis-cli -p 7000 能正常交互,搜索发现是redis官方需要较高的ruby版本。

 

方法二:源码安装

既然用yum不能安装最新版本,还是老老实实用源码安装 

 

#源码安装ruby
wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz
tar -xvf ruby-2.2.2.tar.gz
./configure --prefix=/usr/local/ruby-2.2.2
make && make install 
 
gem install redis
    运行上述命令正常,发现 7000,7001,7003 变成主机,7002,7004,7005成为备机。

  

[root@pclient redis]# ./redis-trib.rb create --replicas 1 192.168.5.14:7000 192.168.5.14:7001 192.168.5.14:7002 192.168.5.8:7003 192.168.5.8:7004 192.168.5.8:7005
>>> Creating cluster
Connecting to node 192.168.5.14:7000: OK
Connecting to node 192.168.5.14:7001: OK
Connecting to node 192.168.5.14:7002: OK
Connecting to node 192.168.5.8:7003: OK
Connecting to node 192.168.5.8:7004: OK
Connecting to node 192.168.5.8:7005: OK
>>> Performing hash slots allocation on 6 nodes...
......
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

 

 

测试:

$ redis-cli -c -p 7000#集群交互必须加上-c选项,否则执行出错。

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

 

分享到:
评论

相关推荐

    Redis高可用集群Redis Cluster搭建

    Redis高可用集群Redis Cluster搭建 Redis高可用集群Redis Cluster搭建是 Redis 官方推荐的高可用性解决方案,于 3.0 版本推出。Redis Cluster 的主要用途是实现数据分片(Data Sharding),同时也可以实现高可用...

    完整搭建redis-cluster

    **Redis Cluster 搭建全攻略** Redis 是一个高性能的键值存储系统,而 Redis Cluster 是它的分布式解决方案,提供数据的自动分片、故障转移和高可用性。本指南将详细讲解如何完整地搭建一个 Redis Cluster,同时...

    docker 实现redis集群搭建

    "docker 实现redis集群搭建" 一、Redis Cluster 概念 Redis Cluster 是 Redis 的分布式解决方案,旨在解决 Redis 单机中心化的问题。它将整个数据集按照分区规则映射到多个节点上,使得 Redis 能够水平扩展以应对...

    Redis官方Cluster搭建配置步骤详解

    Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。 Redis集群并 不支持处理多个keys... 本文,是我自己写的Redis Cluster集群搭建和配置详细步骤,包含了常用的Redis配置文件,和节点的管理等,以供大家参考.

    rediscluster配置文件.zip

    这个压缩包文件"rediscluster配置文件.zip"包含了一系列配置文件,用于搭建一个三主三从的Redis Cluster架构。在这个架构中,每个主节点都有一个对应的从节点,确保在主节点失效时可以从其从节点接管服务,从而保持...

    Redis Cluster集群的搭建与实践

    "Redis Cluster集群的搭建与实践" Redis Cluster集群是Redis的一个高可用性解决方案,它可以在多个Redis节点之间分配数据和状态,提供高性能和高可用性的数据存储服务。下面是Redis Cluster集群的主要知识点: 1. ...

    docker-compose一键搭建Redis集群

    1.先运行 createFile.py 输入宿主机IP地址,输入redis密码 2.按照控制台输出执行docker-compose up -d 启动命令 3.启动成功后执行加入集群命令即可

    RedisCluster集群搭建代码及相应软件

    本压缩包提供了搭建RedisCluster所需的所有文件,包括配置文件、脚本和Redis服务器二进制文件。以下是详细步骤和相关知识点: 1. **redisserver.bat**:这是一个启动Redis服务的批处理文件,用于启动各个节点。在...

    redis_cluster实战栗子.rar

    在本实战栗子中,我们将深入探讨如何搭建Redis Cluster,学习其基本概念、操作指令以及如何处理常见问题。 首先,我们需要理解Redis Cluster的核心特性。Redis Cluster采用无中心架构,每个节点都是对等的,它们...

    Redis Cluster集群部署搭建详解附件

    本文将详细解析如何搭建Redis Cluster集群,包括集群的基本概念、配置、节点间通信以及常见问题处理。 一、Redis Cluster基础概念 1. 节点:每个运行Redis服务的实例称为一个节点,至少需要3个节点才能创建一个基本...

    RedisCluster.zip

    **二、RedisCluster的搭建** 1. **安装Redis**: 首先确保在所有服务器上安装了Redis服务。 2. **配置文件**: 修改每个节点的配置文件,开启集群模式,指定集群ID,设置监听端口等。 3. **初始化节点**: 使用`...

    Tomcat 8+ redis cluster session

    1. **安装与配置Redis Cluster**:首先,你需要搭建一个Redis Cluster,至少需要3个节点以保证容错性。每个节点都需要运行Redis服务器,并且通过特定的命令(如`redis-trib.rb`)进行集群初始化和配置。 2. **配置...

    Windows下安装部署redis cluster

    Windows下安装部署redis cluster,亲测好使,包含 安装环境,redis-3.2.1.gem,redis cluster集群实例

    Redis Cluster部署文档.docx

    ### Redis Cluster 部署与配置详解 #### 一、Redis Cluster 概述 Redis Cluster 是 Redis 3.0 版本引入的一项重要特性,它允许用户将 Redis 实例分组形成一个集群来提供高可用性和数据分区能力。通过这种方式,可以...

    rediscluster集群demo

    本示例“rediscluster集群demo”旨在展示如何设置和操作一个简单的Redis Cluster实例,确保在本地环境中的正确运行。 首先,Redis Cluster采用无中心架构,每个节点都是对等的,并且负责一部分数据。它通过槽(slot...

    RedisCluster.rar

    本文将深入探讨 RedisCluster 的搭建过程、基本使用方法以及如何在 SpringBoot 应用中进行集成。 首先,RedisCluster 实现了数据分片(Sharding)的概念,即将数据自动分散存储在多个节点上,每个节点负责一部分...

    RedisCluster

    **RedisCluster 概述** Redis 是一款高性能的键值存储系统,它支持丰富的数据类型,如字符串、哈希、列表、集合和有序集合。而 RedisCluster 是 Redis 的分布式解决方案,可以将数据分布在多个节点上,提供高可用性...

    Rediscluster1.zip

    RedisCluster是Redis的一个扩展特性,它提供了数据分片和高可用性,使得Redis可以在多...通过这些工具,开发者可以在Windows环境下快速搭建Ruby环境,并利用`redis-rb` gem与RedisCluster进行高效的数据存储和检索。

    redis-cluster搭建.md

    本文档描述redis-cluster在centos7上面的集群搭建,从源码编译、环境准备、安装redis、修改配置文件、启动集群、关闭集群等各个地方进行详细描述不走

Global site tag (gtag.js) - Google Analytics