ホームページ >バックエンド開発 >PHPチュートリアル >Redis クラスター構築チュートリアルの概要
この記事の内容は、Redis クラスターの構築チュートリアルをまとめたものです。非常に詳しい内容です。困っている友人は参考にしてください。皆さんのお役に立てれば幸いです。
この記事は、Web 記事、Web サイト、および 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 構成ファイルとデータを保存するディレクトリを作成します: (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
注: 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
#!/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
daemonize
を設定します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 "/var/log/redis_6379.log"
dir /usr/local/redis/data/6379</pre>
# ubuntu sudo update-rc.d redis_6379 defaults
# centos chkconfig --add redis_6379
sudo /etc/init.d/redis_6379 start
yum インストール
/etc/init.d /redis-server stop /etc/init.d/redis-server startsudo /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 プロセス番号
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 list known rvm install 2.6 rvm use 2.6 yum -y remove ruby # 卸载centos yum 安装的 1.8 版本 ruby --version rvm uninstall ruby # 此处带不带版本自己测试
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 集群搭建详细指南。
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
cd /usr/local/redis/data mkdir -p 9001 9002 9003 9004 9005 9006 # 后期可能需要删除该文件件下的文件,用于重建集群,所以,删除命令也写一下 rm -rf 900*/*
/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
/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
执行命令: /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客户端连接的端口 + 1000
redis /usr/bin/env: ruby: 没有那个文件或目录
执行这个命令 rvm get stable --auto-dotfiles
,或者执行 nvm list
有详细的错误说明(查了资料说,线上不要用rvm安装ruby)
这是我自己的解决方案
# 把这个添加到 /etc/profile 文件中(放到最后就行) rvm use ruby-2.6.0-preview2
相关推荐:
以上がRedis クラスター構築チュートリアルの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。