`
youyu4
  • 浏览: 440124 次
社区版块
存档分类
最新评论

Redis集群

 
阅读更多

Redis集群

 

简介

redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。

 

 

Redis集群的特点

1、将数据自动切分(split)到多个节点

2、当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。

 

 

集群中的主从复制

集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。这样集群就不会因为一个主节点的下线而无法正常工作。

 

 

注意:

1、如果某一个主节点和他所有的从节点都下线的话,redis集群就会停止工作了。redis集群不保证数据的强一致性,在特定的情况下,redis集群会丢失已经被执行过的写命令

2、使用异步复制(asynchronous replication)是 Redis 集群可能会丢失写命令的其中一个原因,有时候由于网络原因,如果网络断开时间太长,redis集群就会启用新的主节点,之前发给主节点的数据就会丢失。



 

 

安装配置

 

修改配置文件redis.conf

 

daemonize yes  
port 6379  
cluster-enabled yes  
cluster-config-file nodes.conf  
cluster-node-timeout 5000 

 

 

要让集群正常运作至少需要三个主节点

我们这里就简单在一台主机上创建6个redis节点来演示集群配置,实际生产环境中需要每个节点一台主机。

 

我们要创建的6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下:

 

192.168.33.130:7000  
192.168.33.130:7001  
192.168.33.130:7002  
192.168.33.130:7003  
192.168.33.130:7004  
192.168.33.130:7005 

 

 

1、首先我们创建6个以端口为名称的文件夹(由于每个redis节点启动的时候,都会在当前文件夹下创建快照文件,所以我们需要创建每个节点的启动目录)

 

mkdir 7000  
mkdir 7001  
mkdir 7002  
mkdir 7003  
mkdir 7004  
mkdir 7005 

 

 

2、接下来把每个节点启动所需要的配置文件拷贝到相应的启动目录:

 

cp redis.conf  7000  
cp redis.conf  7001  
cp redis.conf  7002  
cp redis.conf  7003  
cp redis.conf  7004  
cp redis.conf  7005 

 

 

3、然后我们进入每个启动目录,修改之前拷贝的redis.conf文件中的端口port 为上面列出的对应端口。

最终每个节点的配置类似于:

 

daemonize yes  
port 6379     #只有端口不同,其他相同  
cluster-enabled yes  
cluster-config-file nodes.conf  
cluster-node-timeout 5000 

 

 

4、进入每个启动目录,以每个目录下的redis.conf文件启动



 

使用命令查看redis节点是否启动:

ps -ef | grep redis  



 

5、创建集群命令 

 

redis-trib.rb  create --replicas 1 192.168.33.130:7000 192.168.33.130:7001 192.168.33.130:7002 192.168.33.130:7003 192.168.33.130:7004 192.168.33.130:7005 

 

 

注意:

5.1、执行上面的命令的时候可能会报错,因为是执行的ruby的脚本,需要ruby的环境

错误内容:


 

所以我们需要安装ruby的环境,这里推荐使用yum安装:

 

yum install ruby

 

 

5.2、安装ruby后,执行命令可能还会报错,提示缺少rubygems组件,使用yum安装


 

解决方法:

 

yum install rubygems

 

 

5.3、上面两个步骤后,执行创建集群目录可能还会报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装。


 

解决方法:

 

gem install redis 

 

 

 

上面三个问题解决后,启动创建集群应该可以正常启动了:



 

6、接下来我们使用命令进入集群环境

 

redis-cli -c -p 7000 

 

 

 

redis集群操作

 

1. 使用redis-cli客户端来操作redis集群,使用命令 :

redis-cli -c  -p [port] 

 

 

2. 查看集群中的所有主节点信息

redis-cli -c -p 7000 cluster nodes [| grep master] 

 

 

 

 

 添加删除节点

http://blog.csdn.net/u011204847/article/details/51307044

  • 大小: 44.9 KB
  • 大小: 15 KB
  • 大小: 59.9 KB
  • 大小: 29.3 KB
  • 大小: 45.6 KB
  • 大小: 34.7 KB
  • 大小: 188.9 KB
  • 大小: 5.1 KB
  • 大小: 13.2 KB
分享到:
评论

相关推荐

    springcloud部署redis集群

    在SpringCloud框架中,部署Redis集群是实现高可用、数据持久化和分布式缓存的关键步骤。Redis是一款高性能的键值数据库,广泛应用于缓存、消息队列等多种场景。SpringCloud通过集成Spring Data Redis模块,使得在...

    阿里云公网redis集群搭建以及java访问redis集群

    阿里云公网Redis集群搭建及Java访问教程 在云计算日益普及的今天,阿里云提供了便捷的公共服务,如Redis缓存服务,帮助企业或个人快速构建高效、可靠的分布式应用。本教程将详细讲解如何在阿里云上搭建公网Redis...

    redis集群连接及工具类DEMO

    【Redis集群连接及工具类DEMO】是一个Spring工程,它提供了与Redis集群交互的实例,同时也包含了一些实用的工具类,使得开发者能够更方便地在Java应用中使用Redis作为数据存储。这个DEMO的主要目标是展示如何配置和...

    Redis集群弱/空密码问题整改

    使用redis安装用户,在命令行连接上redis集群后,执行命令:config set requirepass 【自定义的强密码】,如: config set requirepass mypassword@#75@~ 然后执行 config rewrite 将配置密码持久化到redis配置文件...

    springboot整合redis集群零配置

    本篇文章将深入探讨如何在Spring Boot中实现对Redis集群的零配置整合,并介绍使用AOP实现的自定义缓存注解。 首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-...

    k8s集群搭建redis集群

    k8s集群搭建redis集群 k8s集群搭建redis集群 k8s集群搭建redis集群 k8s集群搭建redis集群 k8s集群搭建redis集群

    Redis集群下过期key监听的实现代码

    在使用redis集群时,发现过期key始终监听不到。网上也没有现成的解决方案。于是想,既然不能监听集群,那我可以建立多个redis连接,分别对每个redis的key过期进行监听。以上做法可能不尽人意,目前也没找到好的解决...

    SpringBoot集成Redis集群

    SpringBoot集成Redis集群 在本文档中,我们将指导您如何在SpringBoot 2.X中集成Redis集群。下面是相关的知识点: 集成Redis集群的必要性 在实际应用中,使用Redis集群可以提高系统的可扩展性和可靠性。Redis集群...

    Redis集群数据迁移操作文档

    《Redis集群数据迁移实战指南》 在IT领域,数据迁移是一项关键任务,特别是在使用Redis这样的高性能内存数据库时。本文将详细介绍如何进行Redis集群的数据迁移,包括全量和增量数据迁移,以及离线迁移的方法,主要...

    rancher2.3.6部署redis集群配置教程.pdf

    标题中的“rancher2.3.6部署redis集群配置教程.pdf”暗示了这份文档是针对特定版本的Rancher软件(版本号2.3.6)的使用教程,旨在指导用户如何部署Redis集群。Rancher是一款开源的容器管理平台,可以用来部署、管理...

    redis集群批量插入

    本文将详细讨论如何在Java环境下连接Redis集群并实现批量插入String类型的数据。 首先,我们需要理解Redis集群的基本概念。Redis集群是通过分片(Sharding)技术来分散数据到多个节点,每个节点存储一部分数据。在...

    spring + redis集群

    本文将深入探讨如何使用Spring Data Redis构建一个Redis集群,以及如何通过Spring框架来操作Redis集群,存储对象集合,并提供一个基于Maven的可运行项目示例。 首先,Spring Data Redis是Spring框架的一个模块,它...

    redis集群一键自动部署脚本.rar

    "redis集群一键自动部署脚本.rar" 提供了一种便捷的方式来在 CentOS 7.X 操作系统上搭建 Redis 集群。以下是关于Redis集群、shell脚本以及CentOS的相关知识点: 1. **Redis集群**: - **主从复制(Replication)**...

    springboot集成redis集群,redis安装包配置

    在本文中,我们将深入探讨如何在SpringBoot应用中集成Redis集群以及如何配置Redis服务器。首先,Redis是一个开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。它以其高性能和易用性而备受青睐。...

    Redis集群搭建工具及教程

    在本资源包中,提供了搭建Redis集群所需的各种工具和教程,帮助你在Windows环境下进行操作。 首先,让我们来了解Redis集群的基础知识。Redis集群通过分片(Sharding)技术将数据分散到多个节点上,实现数据的冗余和...

    redis集群windows启动脚本

    在Windows环境下,设置和管理Redis集群可能相对复杂,但通过编写启动脚本可以实现一键启动,简化操作流程。以下将详细介绍如何创建并使用“redis集群windows启动脚本”。 1. **Redis集群概念** Redis集群是Redis...

    nginx+lua+redis 集群 连接插件和脚本

    本资源包“nginx+lua+redis集群 连接插件和脚本”正是为了解决这三者之间的协同工作,特别是针对原插件没有密码功能的问题进行了改进,使得安全性得到了提升。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器...

    Redis集群测试

    Redis集群是一种分布式数据库解决方案,它允许用户将数据分散存储在多台服务器上,以提高系统的可扩展性和可用性。在“Redis集群测试”中,我们通常会关注以下几个关键知识点: 1. **集群架构**:Redis集群采用无...

    redis集群批处理一键搭建

    Redis集群批处理一键搭建是指通过一个简单的批处理脚本来快速构建和配置四个节点的Redis集群。这种方式极大地简化了安装和部署过程,使得在64位操作系统上启用Redis集群变得更加便捷。Redis是一个开源的、高性能的...

    Redis集群配置文件

    Redis集群配置文件是实现Redis高可用性和数据分片的关键组件。在Redis集群中,数据被分散存储在多个节点上,每个节点负责一部分数据,从而提高了系统的扩展性和容错性。以下将详细介绍Redis集群配置文件的相关知识,...

Global site tag (gtag.js) - Google Analytics