zoukankan      html  css  js  c++  java
  • Windows下搭建REDIS集群

    Redis集群:

     如果部署到多台电脑,就跟普通的集群一样;因为Redis是单线程处理的,多核CPU也只能使用一个核,

    所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用率。

    在Windows系统下搭建Redis集群:

    需要4个部件:

        Redis、Ruby语言运行环境、Redis的Ruby驱动redis-xxxx.gem、创建Redis集群的工具redis-trib.rb

    安装Redis,并运行3个实例(Redis集群需要至少3个以上节点,低于3个无法创建);

    使用redis-trib.rb工具来创建Redis集群,由于该文件是用ruby语言写的,所以需要安装Ruby开发环境,以及驱动redis-xxxx.gem

    1.下载并安装Redis

    其GitHub路径如下:https://github.com/MSOpenTech/redis/releases/

    Redis提供msi和zip格式的下载文件,这里下载zip格式 3.0.504版本

    将下载到的Redis-x64-3.0.504.zip解压即可,为了方便使用,建议放在盘符根目录下,并修改目录名为Redis,如:C:Redis 或者D:Redis

      通过配置文件来启动3个不同的Redis实例,由于Redis默认端口为6379,所以这里使用了6380、6381、6383、6384、6385、6386来运行6个Redis实例。

    注意:为了避免不必要的错误,配置文件尽量保存为utf8格式,并且不要包含注释;

    配置文件中以下两种保存日志的方式(保存在文件中、保存到System Log中)请根据需求选择其中一种即可:

    loglevel notice           #日志的记录级别,notice是适合生产环境的
    logfile "D:/Redis/Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
    syslog-enabled yes       #是否使用系统日志   
    syslog-ident redis6380   #在系统日志的标识名
    这里使用了保存在文件中的方式,所以先在Redis目录C:/Redis下新建Logs文件夹

    redis.6380.conf 内容如下:

    port 6380      
    loglevel notice    
    logfile "D:/Redis/Logs/redis6380_log.txt"       
    appendonly yes
    appendfilename "appendonly.6380.aof"   
    cluster-enabled yes                                    
    cluster-config-file nodes.6380.conf
    cluster-node-timeout 15000
    cluster-slave-validity-factor 10
    cluster-migration-barrier 1
    cluster-require-full-coverage yes

    配置内容的解释如下:

     port 6380       #端口号
      loglevel notice    #日志的记录级别,notice是适合生产环境的
      logfile "Logs/redis6380_log.txt"      #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录
      syslog-enabled yes                         #是否使用系统日志
      syslog-ident redis6380                   #在系统日志的标识名
      appendonly yes                              #数据的保存为aof格式
      appendfilename "appendonly.6380.aof"    #数据保存文件
      cluster-enabled yes                                    #是否开启集群
      cluster-config-file nodes.6380.conf
     cluster-node-timeout 15000
     cluster-slave-validity-factor 10
     cluster-migration-barrier 1
     cluster-require-full-coverage yes

    可先将需要的文件下载好放在一个文件夹下,把其它配置文件创建好可复制,替换端口即可.

    2.下载并安装ruby

      2.1. 下载路径如下:

    http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

    下载后,双击安装即可,同样,为了操作方便,也是建议安装在盘符根目录下,如: C:Ruby22-x64 ,安装时这里选中后两个选项,

    意思是将ruby添加到系统的环境变量中,在cmd命令中能直接使用ruby的命令

    2.2.下载ruby环境下Redis的驱动,考虑到兼容性,这里下载的是3.2.2版本

    https://rubygems.org/gems/redis/versions/3.2.2

    注意:下载在页面右下角相关连接一项中

    安装该驱动,命令如下:

    gem install --local path_to_gem/filename.gem

    2.3.下载Redis官方提供的创建Redis集群的ruby脚本文件redis-trib.rb,路径如下:

    https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb

    打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb

    建议保存到Redis的目录下。

    这里我也说明一点:ruby安装有时候不会特别顺利,因为官网有时候会换掉这个安装地址,这种情况下大家只能另外找地址了。

    3.创建Redis集群

    CMD下切换到Redis目录,使用redis-trib.rb来创建Redis集群:

    redis-trib.rb create --replicas 1 192.168.8.55:6380 192.168.8.114:6381 192.168.8.115:6383 192.168.8.101:6384 192.168.8.102:6385 192.168.8.103:6386

      执行结果:

    当出现提示时,需要手动输入yes,输入后,当出现以下内容,说明已经创建了Redis集群

    检验是否真的创建成功,输入以下命令:

    redis-trib.rb check 192.168.8.55:6380

    出现以下信息,说明创建的Redis集群是没问题的

    使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息

    :/Redis/redis-cli.exe -c -p 6380  -c 表示 cluster  -p 表示 port 端口号

    输入dbsize查询 记录总数  dbsize  或者一次输入完整命令:C:/Redis/redis-cli.exe -c -p 6380 dbsize

    开启远程访问

    bind 0.0.0.0

    设置访问密码

    requirepass 密码

    修改端口

    port 6379

    持久化配置

    save 900 1#在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
    save 300 10#在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
    save 60 10000#在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。

    AOF追加方式持久化

    appendonly yes开启持久化
    appendfilename 存储aof持久化路径
    appendfsync持久化方式,可选值no不追加、everysec每秒钟同步一次、always每次有数据修改发生时都会写入AOF文件(影响效率,但是数据完整)
    一般2中同时开启,一个做容灾备份,一个做持久化

    所以修改配置文件,都需要重启Redis

    其他命令

    service redis-server start 开启
    service redis-server stop 停止
    service redis-server restart 重启
    service redis-server status 状态

    redis-check-aof --fi 修复出错的aof文件
    重启redis会自动加载aof文件

    创建集群时报如下信息一直停留在等待界面

    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join.....

    需要在修改配置文件:  bind 的IP改为本机的IP地址.重新创建集群即可.

    如果redis集群创建时报错:Sorry, can't connect to node

    1.redis集群创建时报错:Sorry, can't connect to node 

    ip,端口等都配置正确的话,还需要将redis.conf文件中的密码注释掉    # requirepass 123456

    redis集群环境添加节点时候遇到一个问题,提示新增的Node不为空:

    [ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
    需删除停止Redis服务,删除文件:appendonly.6383.aof nodes-6383.conf  再重新创建集群.

  • 相关阅读:
    访问前端项目时Http请求变成了HTTPS
    Jenkins升级后无法正常启动(java.lang.IllegalStateException: An attempt to save the global configuration ......
    准备开始学习了。
    Nginx的安装与使用
    Linux 学习001
    Nginx为什么比Apache Httpd高效:原理篇
    Asp .Net Core Spa (二)
    Asp .Net Core Spa (一)
    基础笔记(三):网络协议之Tcp、Http
    跨平台运行ASP.NET Core 1.0
  • 原文地址:https://www.cnblogs.com/niewd/p/12780986.html
Copyright © 2011-2022 走看看