zoukankan      html  css  js  c++  java
  • Redis集群的部署

    RedisCluster集群部署步骤

    第一步前提准备条件

    需要准备的内容

    1、下载Redis安装文件,Redis提供msi和zip文件格式的下载文件

    下载地址:

    https://github.com/microsoftarchive/redis/releases

    https://github.com/ServiceStack/redis-windows/tree/master/downloads

    https://download.csdn.net/download/LongtengGensSupreme/12157626

    2、下载Ruby安装文件

    下载地址:https://rubyinstaller.org/downloads/archives/

    下载地址:https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe

    3、下载Ruby环境下Redis的驱动文件,考虑到兼容性,下载版本3.2.2的redis-3.2.2.gem

    下载地址:https://rubygems.org/gems/redis/versions/3.2.2

    4、下载Redis官方提供的创建Redis集群的ruby脚本文件redis-trib.rb,

    下载地址:https://github.com/beebol/redis-trib.rb

    第二步操作

    安装配置Redis

    1、安装(注:本文下面所操作的文件都是在文件根目录是E:Source下进行的)

    (1)把下载的Redis安装文件,安装或者解压到redisfile文件里面 ,然后新建rediscluster文件夹,之后复制redisfile文件,在rediscluster文件夹下粘贴六次,为何要粘贴六次呢,Redis集群规划至少有三个节点的集群,每个节点有一主一备,所有一共需要6台虚拟主机,之后把rediscluster文件夹下粘贴的6文件以6个对应的端口来命名,6380,6381,6382,6383,6384,6385,如下图

     

    接着在6380文件中新建logs文件夹,存放日志,然后修改6380文件中的redis.windows.conf文件名称改成redis.6380.conf,在redis.6380.conf添加下面内容,注意行与行之间之后回车换行,不能留有空格,否则无法运行。

    需要添加的信息:

    port 6380

    loglevel notice

    logfile "E:/Source/rediscluster/6380/logs/redis6380_log.txt"

    syslog-enabled yes

    syslog-ident redis6380

    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

     

    保存,之后编写一个startredis.bat启动服务,

    startredis.bat的内容是:redis-server redis.6380.conf

    双击startredis.bat,启动服务,如下所示

     

    同理,6381,6382,6383,6384,6385也是按照6380文件的操作方式对应修改即可。上述6380,6381,6382,6383,6384,6385全部操作完成,启动以后,如下图所示

     

    注意:服务启动之后不要关闭。

    (当然,因为redis启动服务使用redis-server 加载redis.windows.conf的,所以上述的操作,也 还有还有另外一种方式,可以在redisfile文件里面1个logs文件和新建5个redis.windows.conf,改成对应的端口名称redis.6380.conf,redis.6381.conf,redis.6382.conf,redis.6383.conf,redis.6384.conf,redis.6385.conf,redis.windows.conf内容是上述操作的内容大致一样的,只要修改一个日志的输出路径即可)。

    安装Ruby

    把下载的Ruby安装文件rubyinstaller-2.2.4-x64.exe,进行安装,安装到Ruby22-x64文件夹下,注意安装过程中下图步骤中要全部勾选。

     

    安装Ruby环境下Redis的驱动

    把下载的Ruby环境下Redis的驱动文件redis-3.2.2.gem,拷贝到Ruby22-x64文件夹下

     

    打开E:SourceRuby22-x64in文件,路径中输入cmd,

    输入:gem install --local E:/Source/Ruby22-x64/redis-3.2.2.gem

    显示如下图,即表示ruby下安装Redis驱动安装成功

     

    安装Redis集群的Ruby脚本

    把下载的Redis创建Redis集群的Ruby脚本redis-trib.rb文件拷贝到E:Source ediscluster6380文件下,使用Redis创建Redis集群的Ruby脚本redis-trib.rb来启动集群,路径中输入cmd  回车,

    输入:

    redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385    回车

    其中--replicas 1 表示每个主数据库拥有从数据库个数为1。之前遇到错误提示master节点不能少于3个,输入命令以后显示如下界面:

    redis-trib.rb create --replicas 1 127.0.0.1:6380 127

    .0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385, 回车

    注意:

    1、--replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个,所以我们用了6个redis(即6380, 6381,6382,6383,6384,6385)

    2、上面的语句执行不成功的话,可以在前面加上ruby再运行。(本人就是加了ruby之后才创建成功的,不加ruby的话,不报错,但会有提示)

    Ruby脚本redis-trib.rb启动集群,如下

     

    在出现 Can I set the above configuration? (type 'yes' to accept):   请确定并输入 yes 。成功后的结果如下:

     

    第三步测试

    使用Visual Studio 2019 Enterprise新建.Net Fromwork 4.7 控制台项目ConsoleTestRedisCluster,

    1、选择项目右键,点击 管理NuGet包程序,搜索StackExchange.Redis,点击安装,

    2、添加代码

    using StackExchange.Redis;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleTestRedisCluster
    {
        class Program
        {
            static void Main(string[] args)
            {
                #region 向Redis集群的6380端口添加数据
                //使用的redis api 前提1、安装redis 2、NuGet包管理器添加 StackExchange.Redis
                ConnectionMultiplexer _connectionMultiplexer = ConnectionMultiplexer.Connect("localhost:6380");
                IDatabase _database = _connectionMultiplexer.GetDatabase(0);
                string key1 = "set";
                string value1 = "55555";
                bool result = _database.StringSet(key1, value1);
                string messageSet = result ? "sucess" : "fail";
                Console.WriteLine($"Redis集群的 6380 端口添加数据{key1}:{value1},结果:{messageSet}");
                _connectionMultiplexer.Close();
                #endregion
    
                #region 从Redis集群的6385端获取数据
                ConnectionMultiplexer _connectionMultiplexer1 = ConnectionMultiplexer.Connect("localhost:6385");
                IDatabase _database1 = _connectionMultiplexer1.GetDatabase(0);
                string messageGet = _database1.StringGet(key1).ToString();
                Console.WriteLine($"从Redis集群的 6385 端口获取 {key1} 的数据:{messageGet}");
                _connectionMultiplexer1.Close(); Console.ReadLine();
                #endregion            
            }
        }
    }

    运行结果:

     

    附件一:

    redis.6380.conf内容:

    # Redis configuration file

    # 端口号

    port 6380

    # 日志记录级别,notice是适合生产环境下的

    loglevel notice

    # 指定log的保存路径,默认是创建在Redis的安装目录下,如果子目录需要手动创建

    logfile "E:/Source/RedisCluster/logs/redis6380_log.txt"

    # 是否使用系统日志

    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

  • 相关阅读:
    蜘蛛修网
    推荐10款用户界面设计
    18个web开发人员必备的Chrome扩展
    分享一个帮助你在线测试响应式设计的web工具 Screenqueri.es
    推荐16款每周设计灵感
    分享一个帮助你快速构建HTML5游戏的javascript类库 CreateJS
    5个jQuery的备选轻量级移动客户端开发(Mobile development)类库
    帮助你高效开发Ajax应用的超酷jQuery插件 AjaxML
    免费资源:350个超棒标志性字符图标
    免费素材下载:超酷的简单按钮UI
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/12317995.html
Copyright © 2011-2022 走看看