`

Redis集群

阅读更多


1:安装redis cluster 以及依赖
  1.安装zlib
       

wget:http://zlib.net/zlib-1.2.8.tar.gz
            tar -zxvf zlib-1.2.8.tar.gz
            cd zlib-1.2.8
            ./configure
            make
            make install

 

   2.安装redis
     

wget:http://download.redis.io/redis-stable.tar.gz
            tar -zxvf redis-stable.tar.gz
           cd redis-stable
          make
          make install

 

  3.安装ruby
           

 gem sources -a  http://ruby.taobao.org/            
            yum install rubygems
            gem install redis

 
2:配置redis
  1. 创建节点目录 
           为了区分master 和slave ,slave比master 多1000
    

mkdir /server/cluster/6380 6381 6382 7380 7381 7382

 

通用配置
 
    

mkdir -p /server/server/cluster/redis-common.conf

 

    daemonize yes
    #守护进程运行(后台运行)
   

 tcp-backlog 511  
    timeout 0  
    tcp-keepalive 0  
    loglevel notice  
    databases 16  
    dir /opt/redis/data  
    slave-serve-stale-data yes  

 
    #slave只读 
   

 slave-read-only yes  

 
    #not use default 
   

 repl-disable-tcp-nodelay yes  
    slave-priority 100  

 
    #打开aof持久化 
    

appendonly yes  

 
    #每秒一次aof写 
    

appendfsync everysec  

 
    #关闭在aof rewrite的时候对新的写操作进行fsync 
   

 no-appendfsync-on-rewrite yes  
    auto-aof-rewrite-min-size 64mb  
    lua-time-limit 5000  

 
    #打开redis集群 
   

 cluster-enabled yes  

 
    #节点互连超时的阀值 
    

cluster-node-timeout 15000  
    cluster-migration-barrier 1  
    slowlog-log-slower-than 10000  
    slowlog-max-len 128  
    notify-keyspace-events ""  
    hash-max-ziplist-entries 512  
    hash-max-ziplist-value 64  
    list-max-ziplist-entries 512  
    list-max-ziplist-value 64  
    set-max-intset-entries 512  
    zset-max-ziplist-entries 128  
    zset-max-ziplist-value 64  
    activerehashing yes  
    client-output-buffer-limit normal 0 0 0  
    client-output-buffer-limit slave 256mb 64mb 60  
    client-output-buffer-limit pubsub 32mb 8mb 60  
    hz 10  
    aof-rewrite-incremental-fsync yes

 

特殊配置
           记得更改port

      

 vim /server/cluster/6380/redis.conf
 vim /server/cluster/6381/redis.conf
 vim /server/cluster/6382/redis.conf
 vim /serve/cluster/7380/redis.conf
 vim /server/cluster/7381/redis.conf
 vim /server/cluster/6382/redis.conf

 
#包含通用配置 

include /server/cluster/redis-common.conf  

 
#监听tcp端口 

port 6379  

 
#最大可用内存 

maxmemory 100m 

 
#内存耗尽时采用的淘汰策略: 

# volatile-lru -> remove the key with an expire set using an LRU algorithm  
# allkeys-lru -> remove any key accordingly to the LRU algorithm  
# volatile-random -> remove a random key with an expire set  
# allkeys-random -> remove a random key, any key  
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)  
# noeviction -> don't expire at all, just return an error on write operations  
maxmemory-policy allkeys-lru  

 
#aof存储文件 

appendfilename "appendonly-6379.aof"  

 
#不开启rdb存储,只用于添加slave过程 

dbfilename dump-6379.rdb  

 
#cluster配置文件(启动自动生成) 

cluster-config-file nodes-6379.conf  

 
#部署在同一机器的redis实例,把auto-aof-rewrite搓开,因为cluster环境下内存占用基本一致. 
#防止同意机器下瞬间fork所有redis进程做aof rewrite,占用大量内存(ps:cluster必须开启aof) 

auto-aof-rewrite-percentage 80-100

 

2:创建集群
         1.启动redis服务

    redis-server /server/cluster/6380/redis.conf    
    redis-server /server/cluster/6381/redis.conf
    redis-server /server/cluster/6382/redis.conf
    redis-server /server/cluster/7380/redis.conf
    redis-server /server/cluster/7381/redis.conf
    redis-server /server/cluster/7382/redis.conf

 
        2.创建集群

    

 cd /server/server/redis-stable/src
     ./redis-trib.rb create --replicas 1 host:6380 host:6381 host:6382 host:7380.....

 
     #这里注意redis官方翻译过来的集群教程,使用的是127.0.0.1:prot 实际很坑爹,
     #如果你使用的是java并且使用JedisCluster API来访问
     #会报错:too many redis cluster redirection。
     #比如我的本机ip为123.133.122.141,那么就应该使用123.133.122.141:prot
     #而非127.0.0.1 :port
  命令的意义如下:
给定 redis-trib.rb 程序的命令是 create , 这表示我们希望创建一个新的集群。
选项 --replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是实例的地址列表, 我们希望程序使用这些地址所指示的实例来创建新集群。
     以上命令的意思就是让 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。
    redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中。
      查看集群信息

redis-cli -p 6380 -c
127.0.0.1:6380>cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_sent:19161
cluster_stats_messages_received:19161

 
可以看到当前cluster_state 是ok的


     使用./redis-trib.rb check host port  检查状态

    

./redis-trib.rb check 115.28.138.150:6380
    Connecting to node 115.28.138.150:6380: OK
    Connecting to node 115.28.138.150:7380: OK
    Connecting to node 115.28.138.150:7382: OK
    Connecting to node 115.28.138.150:7381: OK
    Connecting to node 115.28.138.150:6382: OK
    Connecting to node 115.28.138.150:6381: OK
    >>> Performing Cluster Check (using node 115.28.138.150:6380)
    M: 3046c8e6efbcea5c77e90483d97b928c5e4fbe05 115.28.138.150:6380
       slots:0-5460 (5461 slots) master
       1 additional replica(s)
    S: 2f045aaecb9addea7ae8ef636e3a5415686889e4 115.28.138.150:7380
       slots: (0 slots) slave
       replicates 3046c8e6efbcea5c77e90483d97b928c5e4fbe05
    S: c09ffe456b44abedd7ba811aaad470b3f7a36ea5 115.28.138.150:7382
       slots: (0 slots) slave
       replicates ed7200bf1cdacc18661d70c39270995582559037
    S: 1866624d3330f6491d5c57e269811694bb061759 115.28.138.150:7381
       slots: (0 slots) slave
       replicates fb5c50e062d0e770aa534315fec1aa11488c228a
    M: ed7200bf1cdacc18661d70c39270995582559037 115.28.138.150:6382
       slots:10923-16383 (5461 slots) master
       1 additional replica(s)
    M: fb5c50e062d0e770aa534315fec1aa11488c228a 115.28.138.150:6381
       slots:5461-10922 (5462 slots) master
       1 additional replica(s)
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

 

 

0
0
分享到:
评论

相关推荐

    springcloud部署redis集群

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

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

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

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

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

    redis集群连接及工具类DEMO

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

    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是一款开源的容器管理平台,可以用来部署、管理...

    spring + redis集群

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

    redis集群批量插入

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

    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)技术将数据分散到多个节点上,实现数据的冗余和...

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

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

    redis集群windows启动脚本

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

    Redis集群测试

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

    redis集群批处理一键搭建

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

    shiro连接redis集群 根据org.crazycake.shiro包改造源码

    在分布式系统中,尤其是在使用Redis作为缓存或session存储时,Shiro的原生支持可能无法直接与Redis集群配合工作。这里提到的"shiro-redis-cluster"项目,显然是针对这个问题进行的一个定制化改造,它使得Shiro能够...

Global site tag (gtag.js) - Google Analytics