精华内容
下载资源
问答
  • 台服务器搭建redis集群1、俩服务器分别新建目录:usr/local/redis-cluster2、下载源码并解压编译(使用redis版本5.0.4)3、tar xzf redis-5.0.4.tar.gz4、cd redis-5.0.45、make & make install测试编译:发现...

    俩台服务器搭建redis集群

    1、俩服务器分别新建目录:usr/local/redis-cluster

    2、下载源码并解压编译(使用redis版本5.0.4)

    3、tar xzf redis-5.0.4.tar.gz

    4、cd redis-5.0.4

    5、make & make install

    测试编译:发现报错

    6、cd src

    make test

    CC Makefile.dep

    You need tcl 8.5 or newer in order to run the Redis test

    make: *** [test] Error 1

    问题原因:缺少依赖,进行安装

    7、yum install tcl

    8、再次测试编译ok

    make test

    \o/ All tests passed without errors!

    Cleanup: may take some time... OK

    9、至此,可以启动redis了,默认启动模式为前端启动,指令如下

    cd usr/local/bin

    ./redis-server

    10、验证启动是否成功

    ps -ef | grep redis

    11、报错

    a、运行redis-server报错bash: redis-server: command not found

    这是因为在系统的usr/local/bin目录下没有命令文件,这就要将usr/local/redis-cluster/redis/ redis-5.0.4/bin下redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel这些可执行文件复制到local/bin下

    c、所以修改redis.conf里的daemonize改为yes

    12、前端启动的话,如果客户端关闭,redis服务也会停掉,只能新开一个窗口或者改成后台启动redis。

    具体做法分为两步 ->

    第一步:将redis解压文件里面的redis.conf文件复制到当前目录,修改redis.conf里的daemonize改为yes

    第二步:启动

    13、创建集群目录

    俩台服务器在redis-cluster下分别创建7001,7002,7003 // 7004,7005,7006目录

    mkdir 7001 7002 7003

    mkdir 7004 7005 7006

    14、首先对redis.conf下的参数进行修改

    (1)、daemonize设置yes设置后台运行redis

    (2)、cluster-enabled设置yes并去掉注释(启动集群模式)

    (3)、cluster-node-timeout设置5000并去掉注释

    (4)、bind 127.0.0.1(默认ip为127.0.0.1需要改为其他节点机器可访问的ip否则创建集群时无法访问对应的端口,无法创建集群)

    (5)、protected-mode设置no(关闭保护模式)需要不同服务器的节点连通,这个就要设置为 no

    (6)、appendonly设置yesaof日志开启 有需要就开启,它会每次写操作都记录一条日志

    15、复制redis.conf

    分别复制redis.conf文件到7001-7006目录下

    根据不同端口需要个性化设置的地方(可以批量替换)

    (1)、port 7001(分别对每个机器的端口号进行设置)

    (2)、设置pidfile存放在run目录下的文件名pidfile  /var/run/redis_7001.pid

    (3)、logfile /var/log/redis/redis_7001.log

    (4)、dbfilename dump_7001.rdb

    (5)、appendfilename "appendonly_7001.aof"

    (6)、cluster-config-file nodes-7001.conf(集群节点信息文件)去掉注释

    16、创建集群

    (1)、先对每台服务器的端口进行开放

    输入命令行: uname

    会出现系统的名称

    再输入

    cat /etc/redhat-release

    则会出现具体系统

    vim /etc/sysconfig/iptables

    “I”键输入命令行:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 7001 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 7002 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 7003 -j ACCEPT

    ....

    注意BUG点:新开放的端口行一定要在端口行22的下面一行

    (2)、关闭防火墙

    重启防火墙使配置生效:

    [root@Neo777 ~]# /etc/init.d/iptables restart

    查看开放端口

    [root@Neo777 ~]# /etc/init.d/iptables status

    关闭防火墙命令为:

    [root@Neo777 ~]# /etc/init.d/iptables stop

    (3)、创建集群

    ./redis-cli --cluster create 172.25.44.10:7001 172.25.44.10:7002 172.25.44.10:7003 172.25.44.11:7004 172.25.44.11:7005 172.25.44.11:7006 --cluster-replicas 1

    留意屏幕,会有一句(type 'yes' to accept),输入yes,回车,就是接受自动分配的三主三从

    如果最后出现

    [OK] All nodes agree about slots configuration.

    >>> Check for open slots...

    >>> Check slots coverage...

    [OK] All 16384 slots covered.

    说明成功了。

    如果是出现

    Waiting for the cluster to join...........

    一直有 “.”出现,说明另一台服务器的端口策略没通,一直在等那边的节点加入集群,那么恭喜你,要悲剧了.....

    展开全文
  • 1.(必做)安装Redis以及设置密码,允许远程访问,允许后台运行详见https://blog.csdn.net/Xeon_CC/article/details/1072315012.配置redis6601.conf文件192.168.31.201为主节点(负责写入),192.168.31.202和192.168.31...

    1.(必做)安装Redis以及设置密码,允许远程访问,允许后台运行详见

    https://blog.csdn.net/Xeon_CC/article/details/107231501

    2.配置redis6601.conf文件

    192.168.31.201为主节点(负责写入),192.168.31.202和192.168.31.203为从节点(负责读取)

    在/usr/local/redis-5.0.5/ 目录下每个主机新建redis6601.conf文件

    cd /usr/local/redis-5.0.5

    touch redis6601.conf

    在第一台服务器192.168.31.201配置redis6601.conf文件

    include /usr/local/redis-5.0.5/redis.conf

    daemonize yes

    port 6601

    pidfile "/var/run/redis_6601.pid"

    logfile "6601.log"

    dbfilename "dump6601.rdb"

    dir "/usr/local/redis-5.0.5/src"

    appendonly yes

    protected-mode no

    requirepass "123456"

    masterauth "123456"

    在第二台和第三台服务器配置redis6601.conf (文件内容完全一模一样即可)

    其中slaveof 192.168.31.201 6601表示从第一台主机复制数据

    include /usr/local/redis-5.0.5/redis.conf

    daemonize yes

    port 6601

    pidfile "/var/run/redis_ 6601.pid"

    logfile "6601.log"

    dbfilename "dump6601.rdb"

    slaveof 192.168.31.201 6601

    dir "/usr/local/redis-5.0.5/src"

    appendonly yes

    protected-mode no

    requirepass "123456"

    masterauth "123456"

    3.启动所有服务器的redis服务

    cd /usr/local/redis-5.0.5/src

    ./redis-server /usr/local/redis-5.0.5/redis6601.conf

    4.测试

    使用Redis Desktop manager客户端连接redis

    尝试从第一台服务器插入一些数据,我们将发现,另外2台服务器跟着同步数据,从此实现了主从复制

    展开全文
  • Redis集群搭建及测试

    2021-01-12 22:21:56
    Redis集群搭建及测试Redis有三...将就看):说明:一般来讲,生产环境的redis集群都是在不同机房的不同服务器上的,目的就是一个机房发生诸如掉电,火灾,断网等等问题时,依旧能够做到高可用,本文模拟3台服务器搭建...

    Redis集群搭建及测试

    Redis有三种模式,前两种有点点问题,高可用做的不是那么好,目前来讲,最后一种Cluster模式算是最完美的,本文将模拟搭建这种模式的集群搭建过程,废话不多说,我要搭建成如下图所示的样子(灵魂画手,将就看):

    说明:

    一般来讲,生产环境的redis集群都是在不同机房的不同服务器上的,目的就是一个机房发生诸如掉电,火灾,断网等等问题时,依旧能够做到高可用,本文模拟3台服务器搭建6个节点,目的是:

    1).告诉读者,redis集群的每个节点只通过端口和ip来区分,运行起来相当于一个Redis任务(进程)可以做一个redis节点来看待,也就意味着其实可以通过一台服务器构建这6个节点,当然这是模拟,生产环境不会这么干,因为没有意义,

    如果是一台服务器,完全用一个redis就可以了,不用集群,就算用集群,部署到一个节点上,一但掉电,集群整个垮掉了,没有意义。

    2).

    上图我一个服务器部署2个节点,一个主节点,一个其他主节点的从节点,这样,不论是一个从节点垮掉还是一个主节点垮掉,还是Server1整个垮掉,redis集群都不会垮掉,就保证了高可用。

    下面介绍实施过程:

    第一步: 给Servier1,

    Servier2,Servier3安装Redis。不会的看我之前的帖子,从网络到安装到避坑到连接都有详细写。

    第二步:在Service1(192.168.217.111),Service2(192.168.217.112),Servier3(192.168.217.112)的/usr/local/下创建目录分别如下:

    192.168.217.111: /usr/local/redis6371 /usr/local/redis6374

    192.168.217.112: /usr/local/redis6372 /usr/local/redis6375

    192.168.217.113: /usr/local/redis6373 /usr/local/redis6376

    第三步:将redis解压目录下的redis.conf拷贝到上面创建的目录下,也可以拷贝到其中一个,改完配置之后再分别拷贝到其他目录下(因为大部分的配置是一样的,避免繁琐的修改)

    第四步:修改redis.conf配置文件,修改内容如下:

    修改完以上配置之后可以cp或者scp到其他节点的目录下,修改ip,端口,指向文件,集群配置文件等指向,也上面的第1,2,4,5,6,9行的配置为相对应的配置。

    第五步:启动redis服务,安装路径下的bin路径下,利用redis-server

    配置文件的方式启动redis服务,每个节点都同样的方法去启动

    启动成功之后查看:

    第六步:都启动之后,再某一个节点,举例子第一个节点,上执行创建集群的操作命令(5.0之后的版本可以直接用下面的命令创建集群,但是5.0之前的版本需要用ruby脚本去创建,命令有差别,目的一模一样,请自行百度,这里不赘述):

    ./redis-cli --cluster create

    192.168.217.111:6371 192.168.217.112:6372 192.168.217.113:6373

    192.168.217.112:6375 192.168.217.113:6376 192.168.217.111:6374

    --cluster-replicas 1

    如上图所示:按照设计,从节点6375添加到6371主节点,从节点6376添加到6372主节点,从节点6374添加到6373主节点,

    只有3个主节点且主节点有分配Slots(槽),也就是主节点可以读/写操作,但是从节点只能写。

    出现如下页面,表示集群创建成功:

    下面开始测试集群是否搭建成功:

    连接其中一个节点,连接方式:redis-cli -c -h [IP]

    -p [端口] 如下图所示,-c表示集群:

    查看集群中的节点:

    从节点:前面长长的是节点id,

    后面长长的是他的主节点id,通过这个可以看出哪个从节点隶属于哪个主节点,是我们上面设计的样子。

    集群测试:

    我们在Server1这个服务器上登录6371这个节点存入一个数:

    然后新开一个xshell窗口,登录Servier3的6373这个节点去获取这个key,看是否拿到值:

    我再登录Server2的一个从节点6376去获取数据看看:

    从其他节点可以正常获取数据,说明集群正常

    节点掉电测试,将Server3下电:

    然后测试集群的set/get是否正常,如下图所示,集群工作正常,说明了高可用。

    需要再说一下的是:在集群中,如果在当前节点下set一个值,他不一定会存到当前节点下,他会自己选择一个节点去存,也就是说用keys可能并不能看到刚才存入的数据,但是用get

    key就可以拿到刚才存入的值。

    至此完!

    展开全文
  • 1. 准备三台服务器 安装centos76 系统,前提需要开启7000 7001端口开放 10.0.0.22 host1 10.0.0.23 host2 10.0.0.24 host3 firewall-cmd --zone=public --add-port=7000/tcp --permanent firewall-cmd --zone=...

    1. 准备三台服务器   安装centos76 系统,前提需要开启7000 7001端口开放

    10.0.0.22 host1
    10.0.0.23 host2
    10.0.0.24 host3
    
    firewall-cmd --zone=public --add-port=7000/tcp --permanent
    
    firewall-cmd --zone=public --add-port=7001/tcp --permanent
    
    firewall-cmd --reload

    2. 配置服务器

    1. 在host1设置ssh免密登录;
      1. 三台服服务器上都需要执行 ssh-keygen
      2. 在HOST1上执行 注意(需要输入yes和服务器密码)
      3. ssh-copy-id 10.0.0.22
        ssh-copy-id 10.0.0.23
        ssh-copy-id 10.0.0.24
    2.  配置域名解析文件
      cd /root/soft# 下载wget http://download.redis.io/releases/redis-5.0.5.tar.gz
      # 解压
      tar -zxvf redis-5.0.5.tar.gz# cd redis-5.0.5 进行编译make
              

      5. 指定配置文件:

      1. 在每台服务器上 /etc/hosts  文件中添加以下信息    
      2. 10.0.0.22 host1
        10.0.0.23 host2
        10.0.0.24 host3
        在每台服务器上创建文件 redis-env.conf 文件内容为
      3. port 7000
        bind 10.0.0.22
        cluster-enabled yes
        dir /root/soft/7000
        cluster-config-file nodes-7000.conf
        pidfile /root/soft/7000/redis-7000.pid
        logfile /root/soft/7000/redis-7000.log
        appendonly yes
        daemonize yes
        protected-mode no

        注明为:bind 为服务器的IP 地址。

      4. 在每台服务器上安装redis 安装包

        1. 创建/root/soft 目录  mkdir -p /root/soft

        2. 下载安装包、解压、并进行编译

        3. cd /root/soft
          # 下载
          wget http://download.redis.io/releases/redis-5.0.5.tar.gz
          # 解压
          tar -zxvf redis-5.0.5.tar.gz
          
          # cd redis-5.0.5 进行编译
          make

          4. 指定配置文件 (在每台服务器上都需要执行)

          1. 创建/root/soft/7000目录与/root/soft/7001目录

          2. cd /root/soft/
            mkdir 7000
            cd /root/soft/
            mkdir 7001
          3. 将之前创建的源配置文件拷贝到7000和7001目录下

          4. cp -R redis-env.conf /root/soft/7000/redis.conf
            cp -R redis-env.conf /root/soft/7001/redis.conf
          5. 分别进入7000和7001目录,修改redis.conf配置(修改成对应的端口),并检查文件路径是否正确

          6.  启动redis-server服务

          7. cd redis-5.0.5
            ./src/redis-server ../7000/redis.conf
            ./src/redis-server ../70001/redis.conf
          8. 检查是否启动成功 

      5.  创建集群(在host1操作)

        1. 三台服务器,启动6个实例,形成三主三从,其中存储相同数据的主从节点不能落在同一台机器上,目的是防止部署redis的虚拟机宕机从而造成主从节点全部失效。实验机器的地址与端口如下:为了使用主从节点不落在同一台机器上,

          使用如下命令:每台ip+port交叉(没有找到命令指定主从节点的关系的方法).

          在目录下redis-5.0.5 执行: 根据提示输入 yes

          ./src/redis-cli --cluster create --cluster-replicas 1 10.0.0.22:7000 10.0.0.23:7001 10.0.0.23:7000 10.0.0.24:7001 10.0.0.24:7000 10.0.0.22:7001
        2. 如果出现:以下所示说明成功

      6. 测试

        (1)cd /root/soft/redis-5.0.5
        (2)进入redis客户端
          ./src/redis-cli -c -h host1 -p 7000
        (3)输入cluster info 查看集群健康状态
        (4)输入cluster nodes 查看节点健康状态

      7. 如果遇到问题 Node is not empty  需要重新来做:

        1. 各服务器上 停止redis服务器:

          redis-cli -h 10.0.0.22 -p 7000 shutdown
        2. 删除各个节点下的三个文件   nodes-7000.conf  dump.rdb (这个有可能没有)  appendonly.aof

        3. 启动所以节点redis-server

          cd redis-5.0.5
          ./src/redis-server ../7000/redis.conf
          ./src/redis-server ../70001/redis.conf
        4. 再执行 

          ./src/redis-cli --cluster create --cluster-replicas 1 10.0.0.22:7000 10.0.0.23:7001 10.0.0.23:7000 10.0.0.24:7001 10.0.0.24:7000 10.0.0.22:7001

                         redis学习之集群报错Node is not empty - 圣痕道心 - 博客园
                         Redis命令中心(Redis commands) -- Redis中国用户组(CRUG)

                         Redis文档中心 -- Redis中国用户组(CRUG)

    通过juicefs 与minio  redis 结合时:

    当执行

    ./juicefs format --storage minio --bucket http://10.0.0.25:9001/test --accesskey admin --secretkey 123456  redis://10.0.0.22:7000/1 testbs

    如果报:ERR SELECT is not allowed in cluster mode

    说明:1模式不支持,修改为0.

    ./juicefs format --storage minio --bucket http://10.0.0.25:9001/test --accesskey admin --secretkey 123456  redis://10.0.0.22:7000/1 testbs

    展开全文
  • 搭建redis Cluster集群 我准备了六台服务器 下面放代码 10.206.32.16-----redis1 10.206.32.9-----redis2 10.206.32.14-----redis3 10.206.32.10-----redis4 10.206.32.13-----redis5 10.206.32.11-----redis6...
  • 机模拟 ClusterRedis 集群中至少应该有三...Redis 集群至少需要 6 台服务器。目的:1.使用一虚拟机运行6个redis实例。2.需要修改redis的端口号7001-70061.环境准备系统方面,我使用的是 Centos6.91.1 安装 Red...
  • 按照redis官方要求搭建redis集群至少需要有6个redis节点,其中三个作为主节点,另外三个作为从节点,由于没有搭建很虚拟机器,所以本次实践就在一虚拟机上通过开通6个端口进行搭建redis集群,其实效果是一样的...
  • linux搭建redis集群

    千次阅读 2021-11-19 13:40:14
    在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上,一旦服务器宕机服务就不可用,所以为了让服务高可用,分布式服务就出现了,将同一服务部署到多台机器上,即使其中几台服务器宕机,只要有一...
  • 三台云服务器搭建redis集群#今天花了一天的时间弄集群redis;遇到了很坑,从头开始吧环境讲解:两配置:1核2G,另一:1核1G;操作系统:Centos 7.6Redis:3.2.12Ruby:2.3.4由于是云服务器所以默认安装了JDK...
  • LINUX安装REDIS集群 linux安装单机版redis已经在另一篇文章说过了,下边来搞集群,环境是腾讯云服务器: redis3.0以后开始支持集群。 前言:redis用什么做集群?  用一个叫redis-trib.rb的ruby脚本。redis-trib...
  • ./redis-server /usr/local/redis-4.0.11/cluster/7004/redis.conf # ./redis-server /usr/local/redis-4.0.11/cluster/7005/redis.conf 7、两节点安装gen 如果缺少gen工具的话在创建集群的时候就会报下面的错误 ...
  • Linux搭建Redis集群 今天开始,我们着手搭建Redis集群,并实现客户端连接并操作Redis集群 1.首先,在开始搭建集群之前,需要注意的是,redis3.0之后才支持集群,但redis3.0-redis5.0之间需要ruby环境的支撑,而redis6....
  • 问题:我们已经部署好了redis,并且能启动一个redis,实现数据的读写,为什么还要学习redis集群? 答:(1)单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。 (推荐学习:Redis视频教程) (2)...
  • 由于最近服务器外网IP频繁变更,导致redis集群不可用,要重新搭建集群,所以简单写了个集群的一键部署脚本,通过docker来搭建集群。这个自动化脚本主要是对之前的另一篇文章《docker搭建三主三从redis集群,可外网...
  • Docker搭建redis集群

    2021-02-25 13:38:44
    Docker搭建redis集群 这里主要介绍redis的cluster集群,其他两种集群请看最后章节 环境介绍 Docker 版本:19.03.12 Docker 版本:docker-compose version 1.24.0, build 0aa59064 Redis 版本:6.0.8 系统版本:...
  • Redis 发布的 5.x 系列和5.x之前的版本,进行集群的构建方式有所调整而并不通用。一、基础环境准备1.1 Linux下的C语言编译环境Redis是C语言开发的,安装redis需要C语言的编译环境。如果没有gcc需要在线安装。CentOS:...
  • Python搭建Redis集群

    2021-01-11 22:06:21
    总结Ubuntu搭建流程:# 安装redissudo apt install redis-serverredis-server -vredis-cli -v# 安装rubysudo apt-get install ruby rubygemsruby -vgem -v# 安装ruby插件sudo gem install redis -v 3.0.6 (根据re...
  • 由于资源有限,文章以搭建伪集群为例,即以单个服务不同的端口搭建redis集群,实现在公网可以直接访问 1.新建redis集群安装目录,并且在每个目录下新建data目录,用于保存redis数据 mkdir /usr/local/redis-...
  • 单机搭建Redis集群

    2021-04-30 09:14:45
    在测试和研发环境搭建单机Redis集群,简单易懂、方便使用。 1,通过二进制安装docker环境 官网下载静态二进制文件: https://download.docker.com/linux/static/stable/x86_64/docker-20.10.3.tgz 1.1,上传静态二...
  • Mac搭建Redis集群模式

    2021-01-28 12:39:25
    Mac搭建Redis集群模式 一、安装 Redis 1.Mac 环境下安装 Redis 是非常简单的,直接执行命令:brew install redis 就可以了(需要安装 homebrew),这也是我比较推荐的方式。通过 homebrew 安装 Redis 之后,Redis 的...
  • 1、下载redis源码 cd ~ mkdir redis-cluster cd redis-cluster # 这里下载的是3.2.1,太慢就用迅雷 wget http://download.redis.io/releases/redis-3.2.1.tar.gz 2、启动redis # 解压 tar -zxvf redis-3.2.1.tar.gz...
  • 说明:因个人又穷又懒,只准备了一台服务器,如下集群实为伪集群,真实生产环境搭建原理相同,这里只是为了学习搭建流程。 1.基础环境 Linux系统:Centos7 Redis版本 集群环境 节点数量:6 运行端口: ...
  • 服务器 Redis 集群搭建主从复制架构搭建集群架构介绍环境准备安装配置及启动测试Sentinel (哨兵)架构搭建集群架构介绍环境准备Sentinel 配置Sentinel 启动测试 集群搭建说明 为什么会出现 3 种搭建集群的方式? ...
  • Redis集群 搭建Redis集群 准备搭建一个 三主三从 的Redis集群。 注:Redis 集群是 Redis 3.0 版本以后才有的功能, 3.0 以前的版本是没有的 。 环境准备 三台云服务器(106.14.157.48,49.232.112.117,101.34.253....
  • redis集群简介:Redis集群是一个程序集,它提供在个 Redis节点之间共享数据。一个 Redis集群不支持同时处理个键的 Redis命令,因为这要求将数据移动到个节点之间,这会降低 redis集群的性能,并且在高负载时...
  • 一、Redis集群 集群,就是通过添加服务器的数量,提供相同...Redis集群搭建可以参考这边文章: 二、在python中使用Redis集群 有许多python的web后台服务需要使用到redis来作为缓存数据交换的中间件,一般使用官方的r
  • windows搭建redis集群

    2021-07-29 18:00:57
    1、redis集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在...
  • 今天在公司因为一些需求 在windows搭建了一套redis集群 3主6从,并将遇到的所有问题记录下来,给后来者学习使用 一、所需软件: 1,下载redis最新版本(版本必需要3.0以上) 下载地址:...
  • 我们这里采用Docker在三台服务器上面进行Redis集群搭建,它方便快捷、容易上手。 1.集群原理 在Redis集群中,所以的节点彼此关联,节点内部通过二进制协议优化传输速度和带宽。当一个节点挂掉后,集群超过半数的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,559
精华内容 15,023
关键字:

多台服务器搭建redis集群

redis 订阅