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

この記事の内容は、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="/static/imghwm/default1.png" data-src="https://img.php.cn//upload/image/755/105/520/1532744572918545.png?x-oss-process=image/resize,p_40" class="lazy" 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 までご連絡ください。
    PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

    PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

    PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

    PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

    PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

    PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

    PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

    PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

    PHP:多くのウェブサイトの基礎PHP:多くのウェブサイトの基礎Apr 13, 2025 am 12:07 AM

    PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

    誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

    PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

    PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

    PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

    PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

    \ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    mPDF

    mPDF

    mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

    SecLists

    SecLists

    SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

    EditPlus 中国語クラック版

    EditPlus 中国語クラック版

    サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン

    Dreamweaver Mac版

    Dreamweaver Mac版

    ビジュアル Web 開発ツール