目錄
前言
編譯安裝
#:如果只是停止本機redis 請執行:
Rvm 安装 更换源
Rvm Ruby 安装、使用、卸载
RubyGems 升级、更换源、安装redis
集群配置
开启 Redis cluster
创建配置文件
创建数据存储文件
启动Redis cluster 节点
创建集群
测试
问题汇总
首頁 後端開發 php教程 Redis集群建構教學的總結

Redis集群建構教學的總結

Jul 28, 2018 am 10:25 AM
php redis

這篇文章給大家分享的內容是關於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

    <img src="/static/imghw/default1.png" data-src="https://img.php.cn//upload/image/755/105/520/1532744572918545.png" 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中文網其他相關文章!

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解鎖Myrise中的所有內容
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    redis集群模式怎麼搭建 redis集群模式怎麼搭建 Apr 10, 2025 pm 10:15 PM

    Redis集群模式通過分片將Redis實例部署到多個服務器,提高可擴展性和可用性。搭建步驟如下:創建奇數個Redis實例,端口不同;創建3個sentinel實例,監控Redis實例並進行故障轉移;配置sentinel配置文件,添加監控Redis實例信息和故障轉移設置;配置Redis實例配置文件,啟用集群模式並指定集群信息文件路徑;創建nodes.conf文件,包含各Redis實例的信息;啟動集群,執行create命令創建集群並指定副本數量;登錄集群執行CLUSTER INFO命令驗證集群狀態;使

    PHP的未來:改編和創新 PHP的未來:改編和創新 Apr 11, 2025 am 12:01 AM

    PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

    php:死亡還是簡單地適應? php:死亡還是簡單地適應? Apr 11, 2025 am 12:13 AM

    PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

    PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

    PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

    redis底層怎麼實現 redis底層怎麼實現 Apr 10, 2025 pm 07:21 PM

    Redis 使用哈希表存儲數據,支持字符串、列表、哈希表、集合和有序集合等數據結構。 Redis 通過快照 (RDB) 和追加只寫 (AOF) 機制持久化數據。 Redis 使用主從復制來提高數據可用性。 Redis 使用單線程事件循環處理連接和命令,保證數據原子性和一致性。 Redis 為鍵設置過期時間,並使用 lazy 刪除機制刪除過期鍵。

    H5:工具,框架和最佳實踐 H5:工具,框架和最佳實踐 Apr 11, 2025 am 12:11 AM

    H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

    redis-server找不到怎麼辦 redis-server找不到怎麼辦 Apr 10, 2025 pm 06:54 PM

    解決redis-server找不到問題的步驟:檢查安裝,確保已正確安裝Redis;設置環境變量REDIS_HOST和REDIS_PORT;啟動Redis服務器redis-server;檢查服務器是否運行redis-cli ping。

    redis怎麼查看所有的key redis怎麼查看所有的key Apr 10, 2025 pm 07:15 PM

    要查看 Redis 中的所有鍵,共有三種方法:使用 KEYS 命令返回所有匹配指定模式的鍵;使用 SCAN 命令迭代鍵並返回一組鍵;使用 INFO 命令獲取鍵的總數。

    See all articles