Twemproxy は、Memcached サーバーまたは Redis サーバーによって開かれる接続の数を減らすことができるプロキシ サーバーです。次の記事では、twemproxy を使用して redis クラスターをデプロイするための laravel プロジェクトに関する関連情報を主に紹介しており、必要な方は参考にしてください。 twemproxy は twitter によって開発されました。 redis プロキシ プロキシである Twemproxy は、複数の redis サーバーを 1 つとして使用できます。開発者が twemproxy 経由でこれらの redis サーバーにアクセスする場合、どの redis サーバーが k-v データを読み取ったり、k-v データをデータに更新したりするかを気にする必要がありません。また、複数のサーバー間での Redis 共有の問題も解決します。 Redis のマスター/スレーブ レプリケーションの助けを借りて、たとえいずれかの Redis が機能しなくなった場合でも、データ セット全体が存在することを保証できます。
Twemproxy は何に使用されますか?次のことが可能です: プロキシを介したキャッシュサーバー接続の数を減らす
複数のキャッシュサーバー間でデータを自動的に共有する
さまざまな戦略とハッシュ関数を通じて一貫性のあるハッシュをサポートする
設定を通じて障害が発生したノードを無効にする
複数のインスタンスで実行すると、クライアントは最初に利用可能なプロキシサーバーに接続できます
リクエストのストリーミングとバッチ処理をサポートし、ラウンドトリップ時間を削減します
m4 をインストールします
wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz && tar -xzvf m4-1.4.13.tar.gz && cd m4-1.4.13 && ./configure –prefix=/usr/local make && make install
autoconf、automake、libtool、gcc
yum -y install autoconf automake libtool gcc
git clone https://github.com/twitter/twemproxy.git autoreconf -fvi #生成configure文件 .configure make && make install
をインストールします。
3. 設定ファイルを編集します。
vim conf/くるみ割り人形 .yml
alpha: listen: 127.0.0.1:22121 #监听端口 hash: fnv1a_64 #key值hash算法,默认fnv1a_64 distribution: ketama #分布算法 #ketama一致性hash算法;modula非常简单,就是根据key值的hash值取模;random随机分布 auto_eject_hosts: true #摘除后端故障节点 redis: true #是否是redis缓存,默认是false timeout: 400 #代理与后端超时时间,毫秒 server_retry_timeout: 200000 #摘除故障节点后重新连接的时间,毫秒 server_failure_limit: 1 #故障多少次摘除 servers: - 172.16.175.145:6379:1 - 172.16.175.122:6379:1
4. Redis 設定ファイルを変更します
Redis が監視する IP とポートは twemproxy に対応している必要があります (どちらかのマシンに twemproxy をインストールしただけなので、両方のマシンにインストールされていれば問題ありません)変更する必要はありません) 2 つのサーバーの redis.conf のバインド オプションをそれぞれ変更します。この例では、127.0.0.1 を 172.16.175.145 と 172.16.175.122 に変更します5 twemproxy をオンにします
nutcracker -t -c /twemproxy/conf/nutcracker.yml #测试配置文件 如果不加-c 默认是检测conf/nutcracker.yml
nutcracker -d -c /twemproxy/conf/nutcracker.yml -p -o /data/logs/twemproxy/redisproxy.log #启动并将日志记录到/data/logs/twemproxy/redisproxy.log
6. プロジェクトの Redis 接続を twemproxy の IP とポートに変更します
私のプロジェクトは laravel を使用しており、.env の REDIS_HOST と REDIS_PORT を 127.0.0.1 と 22121 に設定するだけですconfig フォルダーの下にある、database.php の redis 構成の 'database' => 0 をコメントアウトする必要があることにも注意してください。これにより、Predis はデフォルトでこの構成に対して選択操作を実行します。これにより、接続エラーが発生します。
Redis の読み取りおよび書き込みテストを実行します。予期せぬことが起こらなければ、twemproxy は通常どおり使用できます。
関連する推奨事項:
Laravel フレームワークは、モデル層の追加、削除、変更、およびチェック (CURD) 操作の例を実装します
以上がtwemproxy_php の例を使用して、laravel プロジェクトで Redis クラスターをデプロイするための完全な手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。