> 백엔드 개발 > PHP 튜토리얼 > Redis 클러스터 구축 튜토리얼 요약

Redis 클러스터 구축 튜토리얼 요약

不言
풀어 주다: 2023-04-03 13:28:02
원래의
1666명이 탐색했습니다.

이 글의 내용은 Redis 클러스터 구축 튜토리얼을 요약한 것입니다. 내용이 매우 상세하므로 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

머리말

이 글은 웹 글, 웹사이트, 그리고 제가 Redis 클러스터를 구축한 경험을 수집하고 정리한 것입니다. 레벨이 제한되어 있으며 환경 구축만 공유됩니다. 이 문서는 다음 부분으로 나누어져 있습니다:

  • Redis 설치

  • Rvm 설치 및 교체 소스

  • Rvm Ruby 설치, 사용, 제거

  • RubyGems 업그레이드, 소스 교체, redis 설치

  • 클러스터 구성

  • 결과 테스트

이 기사를 보려면 위의 단계를 따르십시오.

지침:

  • 학습용으로만 사용하고 온라인에서 사용하는 경우에는 어떠한 책임도 지지 않습니다.

  • 궁금한 점이 있으시면 아래에 메시지를 남겨주세요.

  • 루트 권한을 사용하기 때문에 기사의 일부 명령에는 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 사전: Redis 구성 파일과 데이터를 저장할 디렉터리를 만듭니다.)

    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/ 나중에 클러스터를 생성하는 데 필요합니다. cp /usr/src/redis-4.0.10/src/redis-trib.rb /usr/local/redis/bin/ 后面创建集群要用到

  • Copy the init script that you'll find in the Redis distribution under the utils directory into /etc/init.d. We suggest calling it with the name of the port where you are running this instance of Redis. For example:(有道词典:将在utils目录下的Redis发行版中找到的init脚本复制到/etc/init.d中我们建议使用正在运行这个Redis实例的端口的名称来调用它。例如:)

    sudo cp utils/redis_init_script /etc/init.d/redis_6379
    로그인 후 복사
  • Edit the init script.(有道词典:编辑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

    Make sure to modify REDISPORT accordingly to the port you are using. Both the pid file path and the configuration file name depend on the port number.(有道词典:请确保根据您正在使用的端口对重新分配进行相应的修改。pid文件路径和配置文件名都取决于端口号。)

    • Set daemonize to yes (by default it is set to no). (需要修改为 yes)

    • Set the pidfile to /var/run/redis_6379.pid (modify the port if needed). (默认即可)

    • Change the port accordingly. In our example it is not needed as the default port is already 6379. (默认即可,设置集群的时候需要拷贝配置文件并且重新设置端口)

    • Set your preferred loglevel. (默认即可)

    • Set the logfile to /var/log/redis_6379.log (默认好像为空,需要修改)

    • Set the dir to /var/redis/6379 (very important step!)  (redis数据保存目录,需要修改位置自定义路径)

    • sudo cp redis.conf /usr/local/redis/conf/6379.conf (修改成自己定义的目录。参考上述目录结构 redis.conf 在你们redis解压目录中的src目录下)

    • sudo mkdir /usr/local/redis/data/6379 (修改成自己定义的目录。参考上述目录结构)

    • Edit the configuration file, making sure to perform the following changes:(有道词典:编辑配置文件,确保执行以下更改:)

      注:上面的意思是让你们修改 /usr/local/redis/conf/6379.conf,用vim 打开,搜索上述关键词即可,参考以下设置(如果所有的步骤都是粘贴复制的走下来的,直接修改成下面这样:0.0):
      로그인 후 복사
      port 6379
      daemonize yes
      pidfile /var/run/redis_6379.pid
      loglevel notice
      logfile "/var/log/redis_6379.log"
      dir /usr/local/redis/data/6379
      로그인 후 복사
  • Finally add the new Redis init script to all the default runlevels using the following command:(有道词典:最后,使用以下命令将新的Redis init脚本添加到所有默认的运行级别:)

    # ubuntu
    sudo update-rc.d redis_6379 defaults
    로그인 후 복사
    # centos
    chkconfig --add redis_6379
    로그인 후 복사
  • You are done! Now you can try running your instance with:

    sudo /etc/init.d/redis_6379 start
    로그인 후 복사

测试

Redis 클러스터 구축 튜토리얼 요약

Redis停止、启动

yum 安装

  • /etc/init.d/redis-server stop

  • /etc/init.d/redis-server start

  • /etc/init.d/redis-server restart

源码安装 三种方式

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

    🎜🎜🎜초기화 스크립트를 복사하세요. utils 디렉터리 아래의 Redis 배포판에서 /etc/init.d를 찾을 수 있습니다. Redis의 이 인스턴스를 실행하는 포트 이름으로 호출하는 것이 좋습니다. 예: (Youdao 사전: Redis에 있습니다. utils 디렉터리에 배포 발견된 init 스크립트를 /etc/init.d에 복사합니다. 이 Redis 인스턴스가 실행 중인 포트 이름을 사용하여 호출하는 것이 좋습니다. 예:) 🎜
    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 # 更换源
    로그인 후 복사
    로그인 후 복사
    🎜🎜🎜init 스크립트를 편집합니다. (유다오 사전: init 스크립트 편집. . )🎜
    rvm list known
    rvm install 2.6
    rvm use 2.6
    yum -y remove ruby # 卸载centos yum 安装的 1.8 版本
    ruby --version
    rvm uninstall ruby # 此处带不带版本自己测试
    로그인 후 복사
    로그인 후 복사
    🎜🎜redis.conf 수정 시작🎜🎜🎜사용하는 포트에 맞게 REDISPORT를 수정하세요. pid 파일 경로와 구성 파일 이름 모두 포트에 따라 다릅니다. (Youdao 사전: 사용 중인 포트에 따라 재배포를 적절히 수정하십시오. pid 파일 경로와 구성 파일 이름은 모두 포트 번호에 따라 다릅니다.) 🎜🎜
      🎜🎜 🎜daemonize🎜를 yes로 설정합니다(기본적으로 no로 설정되어 있습니다). (yes로 수정해야 함)🎜🎜🎜🎜🎜pidfile🎜을 다음으로 설정합니다. /var/run/redis_6379.pid (필요한 경우 포트를 수정하세요.) (기본값이면 충분합니다.) 🎜🎜🎜🎜에 맞게 🎜port🎜를 변경하세요. 이 예에서는 기본 포트가 이미 6379이므로 필요하지 않습니다. 기본값이면 충분합니다. 클러스터 설정 시 구성 파일을 복사하고 포트를 다시 설정해야 합니다. /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 사전: 마지막으로 다음 명령을 사용하여 새 Redis init 스크립트를 모든 기본 실행 수준:)🎜
    gem install rubygems-update 
    rubygems-update
    gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
    gem sources -l 
    gem install 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
    로그인 후 복사
    로그인 후 복사
    🎜🎜🎜Test🎜🎜🎜Redis 클러스터 구축 튜토리얼 요약🎜🎜🎜Redis 중지 및 시작🎜

    yum 설치 h3>🎜🎜 🎜/etc/init.d/redis-server stop🎜🎜🎜🎜/etc/init.d /redis-server start🎜🎜🎜🎜/etc/init.d/redis-server restart🎜🎜🎜

    세 가지 방법 소스 코드 설치

    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-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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿