ホームページ  >  記事  >  バックエンド開発  >  Redis クラスター構築チュートリアルの概要

Redis クラスター構築チュートリアルの概要

不言
不言オリジナル
2018-07-28 10:25:211542ブラウズ

この記事の内容は、Redis クラスターの構築チュートリアルをまとめたものです。非常に詳しい内容です。困っている友人は参考にしてください。皆さんのお役に立てれば幸いです。

はじめに

この記事は、Web 記事、Web サイト、および Redis クラスターの構築に関する私自身の経験を収集して整理したものです。レベルは限定されており、環境構築のみが共有されます。この記事は次の部分に分かれています:

  • #Redis のインストール

  • Rvm のインストールと置換ソース

  • Rvm Ruby のインストール、使用、アンインストール

    ##RubyGems のアップグレード、ソースの変更、redis のインストール
  • ##クラスター構成

  • ##Achievements Test

  • この記事を表示するには、上記の手順に従ってください

    手順:

学習用目的のみで、オンラインで使用された場合、私は一切の責任を負いません。

  • ご質問がございましたら、以下にメッセージを残してください。

  • root 権限を使用しているため、記事内の一部のコマンドには sudo が含まれていません。

  • Redis のインストール

    コンパイルとインストール
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
tar xzf redis-4.0.10.tar.gz
cd redis-4.0.10
make PREFIX=/usr/local/redis install

注: Redis をサービスとして使用したくない場合は、すでにここにインストールしました

Redis をサービス参照にする: Redis クイック スタート

Redis 構成ファイルとデータを保存するディレクトリを作成します: (Youdao Dictionary : Redis 構成ファイルとデータを保存するディレクトリを作成します :)

  • # 这只是一个目录结构,大家不要着急为什么自己没有,往下看,一步一步来
    [root@amor ~]# cd /usr/local/redis
    [root@amor redis]# tree
    .
    ├── bin  # 编译安装指定目录后自动生成目录及文件
    │   ├── redis-benchmark
    │   ├── redis-check-aof
    │   ├── redis-check-rdb
    │   ├── redis-cli
    │   ├── redis-sentinel -> redis-server
    │   └── redis-server
    ├── conf # 自己建立的存储配置文件的目录及自己创建的单个Redis配置文件
    │   └── 6379.conf
    └── data # 自己建立的存储Redis数据的目录及单个Redis服务数据存储目录
        └── 6379
    
    4 directories, 7 files

    注: Redis クラスター構築チュートリアルの概要cp /usr /src/redis-4.0.10/src/redis-trib.rb /usr/local/redis/bin/

    を使用する必要があります。後でクラスターを作成するときに、utils ディレクトリの下の Redis ディストリビューションにある init スクリプトを /etc/init.d にコピーします。Redis のこのインスタンスを実行しているポートの名前でそれを呼び出すことをお勧めします。例: (Youdao Dictionary : Redis ディストリビューションの utils ディレクトリにある init スクリプトを /etc/init.d にコピーします。この Redis インスタンスが実行されているポートの名前で呼び出すことをお勧めします。例:)

    sudo cp utils/redis_init_script /etc/init.d/redis_6379
  • init スクリプトを編集します。(Youdao Dictionary: init スクリプトを編集します。)

    #!/bin/sh
    # chkconfig 2345 90 25                         # linux 开机启动设置 2345 运行级别 90 启动优先级(参考 memcached head /etc/rc.d/rc3.d/S90memcached ) 25 关闭优先级 (参考memcached)
    # Simple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    
    ### BEGIN INIT INFO
    # Provides:     redis_6379
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Redis data structure server
    # Description:          Redis data structure server. See https://redis.io
    ### END INIT INFO
    
    REDISPORT=6379
    EXEC=/usr/local/redis/bin/redis-server         # 修改为自己的可执行文件所在目录
    CLIEXEC=/usr/local/redis/bin/redis-cli         # 修改为自己的可执行文件所在目录
    
    PIDFILE=/var/run/redis_${REDISPORT}.pid        # 默认就好
    CONF="/usr/local/redis/conf/${REDISPORT}.conf" # 修改为自己的配置文件存放目录
    ···省略···
    esac
  • redis.conf の変更を開始します。
  • 使用しているポートに応じて REDISPORT を変更してください。pid ファイルのパスと構成ファイル名の両方がポート番号に依存します。ファイル名はすべてポート番号に依存します。)

    daemonize
  • を yes に設定します (デフォルトでは no に設定されています) (yes に変更する必要があります)
    • を設定しますpidfile

      を /var/run/redis_6379.pid に変更します (必要に応じてポートを変更します) (デフォルトで十分です)
    • 必要に応じて port

      を変更します。この例では、デフォルトのポートがすでに 6379 であるため、これは必要ありません。(デフォルトで十分です。クラスターのセットアップ時に構成ファイルをコピーしてポートをリセットする必要があります)
    • #Set好みの loglevel (デフォルトで十分です)

    • logfile を /var/log/redis_6379.log に設定します (デフォルトは次のようです)空であるため、変更する必要があります)

    • dir を /var/redis/6379 に設定します (非常に重要な手順です!) (Redis データ ストレージ ディレクトリ。場所のカスタム パスを変更します)

    • sudo cp redis.conf /usr/local/redis/conf/6379.conf (独自に定義したディレクトリに変更します) 。 Redis 解凍ディレクトリの src ディレクトリにある上記のディレクトリ構造 redis.conf を参照してください)

    • sudo mkdir /usr/local/redis/data/6379 (独自に定義したディレクトリに変更します。上記のディレクトリ構造を参照してください)

    • 設定ファイルを編集し、次の変更を必ず実行してください: (Youdao Dictionary: 設定ファイルを編集します。次の変更を実行します:) <pre class="brush:php;toolbar:false">注:上面的意思是让你们修改 /usr/local/redis/conf/6379.conf,用vim 打开,搜索上述关键词即可,参考以下设置(如果所有的步骤都是粘贴复制的走下来的,直接修改成下面这样:0.0):</pre> <pre class="brush:php;toolbar:false">port 6379 daemonize yes pidfile /var/run/redis_6379.pid loglevel notice logfile &quot;/var/log/redis_6379.log&quot; dir /usr/local/redis/data/6379</pre>

    • 最後に、次のコマンドを使用して、新しい Redis init スクリプトをすべてのデフォルトのランレベルに追加します: (Youdao Dictionary: 最後に、次のコマンドを使用します)新しい Redis init スクリプトを [すべてのデフォルトのランレベルに追加] に追加します:)

      # ubuntu
      sudo update-rc.d redis_6379 defaults
      # centos
      chkconfig --add redis_6379
    • #これで完了です! これで、次のコマンドを実行してインスタンスを実行できます:
sudo /etc/init.d/redis_6379 start
  • test
  • Redis の停止と開始

    yum インストールRedis クラスター構築チュートリアルの概要

    /etc/init.d /redis-server stop

    /etc/init.d/redis-server start
    • /etc/init .d/redis-server restart
    • ソース コードをインストールする 3 つの方法
    sudo /etc/init.d/redis_6379 start
    /usr/local/redis/bin/redis-server redis.conf  # 注意此处缺省:配置文件路径
    redis-cli -h 127.0.0.1 -p 6379 shutdown
  • 注: ローカル Redis を停止するだけの場合は、次を実行してください:

    redis-cli shutdown
  • 強制終了

    ##kill -9 プロセス番号

      ##pkill redis

    Rvm 安装 更换源

    curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
    curl -L get.rvm.io | bash -s stable 
    rvm user gemsets # 建立用户配置目录,更换源的时候需要向 db 文件写入配置信息
    echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db # 更换源

    Rvm Ruby 安装、使用、卸载

    rvm list known
    rvm install 2.6
    rvm use 2.6
    yum -y remove ruby # 卸载centos yum 安装的 1.8 版本
    ruby --version
    rvm uninstall ruby # 此处带不带版本自己测试

    RubyGems 升级、更换源、安装redis

    gem install rubygems-update 
    rubygems-update
    gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
    gem sources -l 
    gem install redis

    集群配置

    注:下面的内容是我自己参考这篇博文加上我熟悉Redis安装后自己的配置过程。大家可以参考NrwLm - Redis 集群搭建详细指南。

    开启 Redis cluster

    cd /usr/local/redis/conf
    cp 6379.conf redis.conf.default  # 用作集群其他配置文件的蓝本
    sudo vim redis.conf.default

    修改内容如下

    bind 192.168.2.123  # 绑定当前机器 IP
    cluster-enabled yes # 取消注释,启动集群模式
    cluster-config-file nodes-6379.conf # 取消注释,修改为 /usr/local/redis/data/6379/nodes-6379.conf  (如果遇到需要重新建立集群,不将此项修改为指定路径而和启动配置文件放在一起,会导致建立集群时,删除重建conf 文件)
    cluster-node-timeout 15000 # 取消注释
    appendonly yes # 将 no 修改为 yes

    创建配置文件

    cd /usr/local/redis/conf
    echo 9001.conf 9002.conf 9003.conf 9004.conf 9005.conf 9006.conf | xargs -n 1 cp -v redis.conf.default
    sed -i 's/6379/9001/g'  9001.conf 
    sed -i 's/6379/9002/g'  9002.conf 
    sed -i 's/6379/9003/g'  9003.conf 
    sed -i 's/6379/9004/g'  9004.conf 
    sed -i 's/6379/9005/g'  9005.conf 
    sed -i 's/6379/9006/g'  9006.conf

    Redis クラスター構築チュートリアルの概要

    Redis クラスター構築チュートリアルの概要

    创建数据存储文件

    cd /usr/local/redis/data
    mkdir -p 9001 9002 9003 9004 9005 9006
    # 后期可能需要删除该文件件下的文件,用于重建集群,所以,删除命令也写一下
    rm -rf 900*/*

    启动Redis cluster 节点

    /usr/local/redis/bin/redis-server /usr/local/redis/conf/9001.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/9002.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/9003.conf 
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/9004.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/9005.conf
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/9006.conf

    Redis クラスター構築チュートリアルの概要

    创建集群

    /usr/local/redis/bin/redis-trib.rb create --replicas 1 192.168.2.123:9001 192.168.2.123:9002 192.168.2.123:9003 192.168.2.123:9004 192.168.2.123:9005 192.168.2.123:9006

    Redis クラスター構築チュートリアルの概要

    测试

    执行命令: /usr/local/redis/bin/redis-cli -c -h 192.168.2.123 -p 9001

    <img src="https://img.php.cn//upload/image/755/105/520/1532744572918545.png" title="1532744572918545.png" alt="Redis クラスター構築チュートリアルの概要">

    问题汇总

    • 如果遇到timeout 请查看自己的防火墙,安装宝塔的尤其注意,请先去安全里面放行 9001:9006 的端口

    • redis集群 Waiting for the cluster to join 一直等待,redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口,集群总线端口为redis客户端连接的端口 + 1000Redis クラスター構築チュートリアルの概要

    • redis /usr/bin/env: ruby: 没有那个文件或目录

      • 执行这个命令 rvm get stable --auto-dotfiles,或者执行 nvm list 有详细的错误说明(查了资料说,线上不要用rvm安装ruby)

      Redis クラスター構築チュートリアルの概要

      • 这是我自己的解决方案

        # 把这个添加到 /etc/profile 文件中(放到最后就行)
        rvm use ruby-2.6.0-preview2

    相关推荐:

    CentOS7系统安装和配置Memcached的方法

    以上がRedis クラスター構築チュートリアルの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。