Redis集群建構教學的總結

不言
發布: 2023-04-03 13:28:02
原創
1507 人瀏覽過

這篇文章給大家分享的內容是關於Redis集群搭建教程的總結,內容很詳細,有需要的朋友可以參考一下,希望可以幫助到大家。

前言

本文收集並整理了Redis集群搭建的網文、網站、自己的經驗。水平有限,只分享環境搭建。本文分為以下幾個部分:

  • Redis 安裝

  • Rvm 安裝更換來源

  • ## Rvm Ruby 安裝、使用、卸載

  • RubyGems 升級、更換來源、安裝redis

  • ##叢集設定
  • #成果測試
  • 請大家依照上述步驟來查看此文

#說明:

    僅限學習使用,若用於線上,本人不承擔任何責任。
  • 如有問題,請在下方留言。
  • 文中有些指令沒有帶sudo,是因為我用的root權限。
  • 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 Quick Start

    Create a directory where to store your Redis config files and your data:(有道字典:建立一個目錄來儲存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/

    後面建立叢集要用到

    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

    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

    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
    作者最新文章
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!