Centos7下redis5集群搭建與使用的方法
1、簡單說明
叢集中應該至少有三個節點,每個節點都有一個備份節點。需要6台伺服器。
如果條件有限,可以建構偽分佈式,以下步驟是在一台 linux 伺服器上建構一個有6個節點的 redis叢集。
2、建立叢集步驟
##2.1、建立目錄
新目錄:mkdir /usr/local /redis-cluster
2.2、下載原始碼並解壓縮編譯wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf redis-5.0.0.tar.gz
cd redis-5.0.0
make
make install prefix=/usr/local/redis
登入後複製
wget http://download.redis.io/releases/redis-5.0.0.tar.gz tar xzf redis-5.0.0.tar.gz cd redis-5.0.0 make make install prefix=/usr/local/redis
3、建立6個redis設定檔
# 6個設定檔不能在同一個目錄,這裡我們定義如下:/root/software/redis/redis-cluster-conf/7001/redis.conf一些操作指令僅供參考:/ root/software/redis/redis-cluster-conf/7002/redis.conf
/root/software/redis/redis-cluster-conf/7003/redis.conf
#/root/software/redis/redis- cluster-conf/7004/redis.conf
/root/software/redis/redis-cluster-conf/7005/redis.conf
/root/software/redis/redis-cluster-conf/7006/redis. conf
cp redis.conf /usr/local/redis/bin cd /usr/local/redis/ cp -r bin ../redis-cluster/redis01 cd /usr/local/redis-cluster/redis01 rm dump.rdb #删除快照 vim redis.conf
port 7001 #端口 cluster-enabled yes #启用集群模式 cluster-config-file nodes.conf cluster-node-timeout 5000 #超时时间 appendonly yes daemonize yes #后台运行 protected-mode no #非保护模式 pidfile /var/run/redis_7001.pid bind 172.20.10.7 #127.0.0.1改为本机ip地址,可用ifconfig查看ip
[root@master redis-cluster]# cp -r redis01/ redis02 [root@master redis-cluster]# cp -r redis01/ redis03 [root@master redis-cluster]# cp -r redis01/ redis04 [root@master redis-cluster]# cp -r redis01/ redis05 [root@master redis-cluster]# cp -r redis01/ redis06
分別進入redis01、redis02、...redis06目錄,執行: ./redis-server ./redis.conf
建立一個批次文件,同時啟動六個redis
vim startall.sh新增以下內容:
cd redis01 ./redis-server redis.conf cd .. cd redis02 ./redis-server redis.conf cd .. cd redis03 ./redis-server redis.conf cd .. cd redis04 ./redis-server redis.conf cd .. cd redis05 ./redis-server redis.conf cd .. cd redis06 ./redis-server redis.conf cd ..
然後執行
chmod u x start-all.sh將start -all.sh
變成可執行檔在目前目錄下啟動:
檢視:
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168559062896660.jpg" class="lazy" alt="Centos7下redis5集群搭建與使用的方法" />
因為我們使用的5.0.0的版本的redis搭建的叢集只要把編譯後的redis目錄中的這個redis-cli檔拷貝到redis-cluster目錄過來即可。 (redis版本5.0以後都是用c語言直接啟動)
/usr/local/redis-cluster/redis-cli --cluster create 172.20.10.7:7001 172.20.10.7:7002 10.7:7001 172.20.10.7:7002 172.20. 10.7:7003 172.20.10.7:7004 172.20.10.7:7005 172.20.10.7:7006 --cluster-replicas 1啟動後,可看到成功訊息,如下:#rrrr #輸入yes回車
>>> performing hash slots allocation on 6 nodes... master[0] -> slots 0 - 5460 master[1] -> slots 5461 - 10922 master[2] -> slots 10923 - 16383 adding replica 172.20.10.7:7004 to 172.20.10.7:7001 adding replica 172.20.10.7:7005 to 172.20.10.7:7002 adding replica 172.20.10.7:7006 to 172.20.10.7:7003 >>> trying to optimize slaves allocation for anti-affinity [warning] some slaves are in the same host as their master m: a4128b5e581c3722acd9b093c5f29f5056f680b0 172.20.10.7:7001 slots:[0-5460] (5461 slots) master m: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002 slots:[5461-10922] (5462 slots) master m: 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003 slots:[10923-16383] (5461 slots) master s: 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004 replicates a4128b5e581c3722acd9b093c5f29f5056f680b0 s: 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005 replicates d6fed6f21269b8469a3076ac5fb168bd20f70c26 s: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006 replicates 51a0f62dacead745ce5351cdbe0bdbae553ce413 can i set the above configuration? (type 'yes' to accept):yes
至此,reids5 叢集建置完成。
6、叢集的操作6.1、關閉叢集
方法一: redis5 提供了關閉叢集的工具,在以下目錄:
/root/redis-5.0.0/utils/create-cluster 開啟此檔案修改連接埠為我們自己的,如下所示:
往下看再修改路徑與新增ip位址,如果不加會預設本機127.0.0.1
方法二:#create-cluster目錄下編寫腳本檔:vim shutdown.sh
>>> nodes configuration updated >>> assign a different config epoch to each node >>> sending cluster meet messages to join the cluster waiting for the cluster to join ...... >>> performing cluster check (using node 172.20.10.7:7001) m: a4128b5e581c3722acd9b093c5f29f5056f680b0 172.20.10.7:7001 slots:[0-5460] (5461 slots) master 1 additional replica(s) m: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002 slots:[5461-10922] (5462 slots) master 1 additional replica(s) s: 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004 slots: (0 slots) slave replicates a4128b5e581c3722acd9b093c5f29f5056f680b0 m: 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003 slots:[10923-16383] (5461 slots) master 1 additional replica(s) s: 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005 slots: (0 slots) slave replicates d6fed6f21269b8469a3076ac5fb168bd20f70c26 s: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006 slots: (0 slots) slave replicates 51a0f62dacead745ce5351cdbe0bdbae553ce413 [ok] all nodes agree about slots configuration. >>> check for open slots... >>> check slots coverage... [ok] all 16384 slots covered.
chmod u x shutdown.sh
將shutdown.sh變成可執行檔
#在目前目錄下啟動: ./shutdown.sh
查看:ps aux|grep redis
官方:/usr/local/redis-cluster/redis-cli -a xxx -c - h 192.168.5.100 -p 8001
提示:-a存取服務端密碼,-c表示叢集模式,-h指定ip位址,-p指定連接埠號碼
6.2、重新啟動叢集/root/redis-5.0.0/utils/create-cluster/create-cluster start
vim startall.sh 追加以下內容:(記得改自己ip位址)
/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7001 shutdown /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7002 shutdown /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7003 shutdown /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7004 shutdown /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7005 shutdown /usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7006 shutdown
啟動:./startall.sh
# 7.測試群集redis-cluster目錄下執行
redis01/redis-cli -h 192.168.25.153 -p 7002 -c #其中-c表示以叢集方式連接redis,-h指定ip位址,-p指定連接埠號碼
cluster nodes 查詢叢集結點資訊
cluster info 查詢叢集狀態資訊
#以上是Centos7下redis5集群搭建與使用的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

如何清空 Redis 數據:使用 FLUSHALL 命令清除所有鍵值。使用 FLUSHDB 命令清除當前選定數據庫的鍵值。使用 SELECT 切換數據庫,再使用 FLUSHDB 清除多個數據庫。使用 DEL 命令刪除特定鍵。使用 redis-cli 工具清空數據。

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

在CentOS系統上,您可以通過修改Redis配置文件或使用Redis命令來限制Lua腳本的執行時間,從而防止惡意腳本佔用過多資源。方法一:修改Redis配置文件定位Redis配置文件:Redis配置文件通常位於/etc/redis/redis.conf。編輯配置文件:使用文本編輯器(例如vi或nano)打開配置文件:sudovi/etc/redis/redis.conf設置Lua腳本執行時間限制:在配置文件中添加或修改以下行,設置Lua腳本的最大執行時間(單位:毫秒)

使用 Redis 指令需要以下步驟:打開 Redis 客戶端。輸入指令(動詞 鍵 值)。提供所需參數(因指令而異)。按 Enter 執行指令。 Redis 返迴響應,指示操作結果(通常為 OK 或 -ERR)。

使用Redis進行鎖操作需要通過SETNX命令獲取鎖,然後使用EXPIRE命令設置過期時間。具體步驟為:(1) 使用SETNX命令嘗試設置一個鍵值對;(2) 使用EXPIRE命令為鎖設置過期時間;(3) 當不再需要鎖時,使用DEL命令刪除該鎖。

使用 Redis 命令行工具 (redis-cli) 可通過以下步驟管理和操作 Redis:連接到服務器,指定地址和端口。使用命令名稱和參數向服務器發送命令。使用 HELP 命令查看特定命令的幫助信息。使用 QUIT 命令退出命令行工具。

Redis數據過期策略有兩種:定期刪除:定期掃描刪除過期鍵,可通過 expired-time-cap-remove-count、expired-time-cap-remove-delay 參數設置。惰性刪除:僅在讀取或寫入鍵時檢查刪除過期鍵,可通過 lazyfree-lazy-eviction、lazyfree-lazy-expire、lazyfree-lazy-user-del 參數設置。
