redis修改端口号后还是占用6379_Redis分布式缓存分布式集群搭建
當你試圖解決一個你不理解的問題時,復雜化就產成了。—Andy Boothe
Redis集群安裝部署
Redis是一個運行在內存的非關系型數據庫,因為其速度快(效率高),支持數據的持久化(安全),事務操作的原子性(所有操作的原子性),使得其在高并發場景下廣泛使用。Redis也常常在高并發場景下作為緩存服務器的角色進行使用,在《大型網站技術架構:核心原理與案例分析》中提到:高并發場景下性能的優化優先考慮緩存。常用的緩存服務有Redis,MongoDB等。
Redis下載
在Redis官方網站上可以在Download it選項中獲取到Redis的最新版本或者舊版本,本地搭建我使用的是redis-5.0.9.tar.gz版本,比較穩定。可以使用wget命令下載相關壓縮包,并對壓縮包進行解壓如下:
wget http://download.redis.io/releases/redis-5.0.9.tar.gz tar -zxvf redis-5.0.9.tar.gz -C ~/cache/Redis的編譯和安裝
首先我們需要確定我們集群的規模,這里建立集群6個節點,三個master節點,三個slave節點。首先我們切換目錄到上一步驟的解壓目錄,cd redis6379,然后執行make和make install命令對Redis進行安裝。然后,我們建立集群目錄。在Redis集群搭建的過程中主要是Redis的配置文件Redis.conf文件中的配置不同而已,這里我直接拷貝的編譯后的Redis目錄。可以得到如下節點分布情況:
更改Redis配置為集群模式
因為在同一臺電腦上搭建的Redis集群,所以需要修改Redis的端口號來標識不同的進程,并開啟集群模式。六臺實例的端口號分布在6379~6384,詳細配置如下:
| bind | Ip地址 | 外部可訪問IP |
| port | 端口號 | 需要確認端口是否已被占用 |
| daemonize | 后臺進程 | 設置為yes |
| pidfile | 進程文件 | 修改為對應端口號 |
| cluster-enabled | 集群模式 | 設置為yes |
| cluster-config-file | nodes_7000.conf | 首次啟動自動生成 |
| cluster-node-timeout | 15000 | 請求超時時間,默認15s |
| appendonly | yes | aof日志開啟 |
Redis啟動腳本
path=`pwd`for dic in `ls $path`do if [[ ${dic} == redis* ]] && [[ -d ${dic} ]];then path=${dic}'/src' cd ${path} ./redis-server ../redis.conf cd ../../ fidone保存到文件,start-cluster.sh文件中,并執行。
檢查Redis啟動情況
創建集群
在啟動集群命令時,我遇到了比較多的問題需要處理,詳細問題如下:
關于問題一:需要卸載安裝高版本的ruby。我本地虛擬級安裝的為2.5.3版本。主要步驟包括卸載,安裝,設置環境變量,安裝redis等步驟,詳情如下:
# 卸載 yum remove ruby # 下載新版本 wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz # 解壓安裝 tar zxvf ruby-2.5.3.tar.gz cd ruby-2.5.3 ./configure --prefix=/usr/local/ruby make make install # 配置環境 export PATH=$PATH:/root/pl/ruby-2.5.3/bin >>/etc/profile source /etc/profile # 驗證 ruby -version然后就可以執行
gem install redis關于問題二:因為ruby的源是國外的,導致執行gem install redis超時卡死,需要更新yum源頭,可按照如下方式更新:可以拷貝如下命令:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/處理完以上的問題我們就可以創建集群了,創建集群前,我們已經啟動了所有的Redis節點,所以:
./redis-cli --cluster create IP:6380 IP:6381 IP:6382 IP:6383 IP:6384 --cluster-replicas 1可以大致看一下集群關系:
./redis-cli -h IP -p 6379 -c cluster slots | xargs -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq執行上面的命令,我們可以得出下面的結果
IP:6379(master)->IP:6383(slave)IP:6380->IP:6384IP:6381->IP:6382我們測試一下:
IP:6379> sadd aaa ccc-> Redirected to slot [10439] located at 192.168.64.134:6380(integer) 1執行成功,其實Redis集群搭建遠遠不止這些,后面還會結合Zookeeper對Redis節點進行協調,并設置哨兵等問題對改文檔進行更改。希望大家多多關注!!!
總結
以上是生活随笔為你收集整理的redis修改端口号后还是占用6379_Redis分布式缓存分布式集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 绘图的背景颜色不要_mat
- 下一篇: python 运维包_基础入门_Pyth