Redis集羣搭建與連接

目錄

1 集羣搭建

2 Spring Boot連接


本文將演示Redis Cluster的僞集羣搭建過程,用一臺虛擬機來模擬搭建六個節點,三主三從的集羣效果。我虛擬機的ip是192.168.253.129,Redis的版本是5.0.5。


1 集羣搭建

我的Redis安裝目錄在/usr/redis/redis-5.0.5/這個路徑下,首先在該路徑下創建一個redis-cluster的目錄並在其下創建六個子目錄來模擬六個節點:

mkdir -p /usr/redis/redis-5.0.5/redis-cluster
cd redis-cluster
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
mkdir 7006

接着將redis.conf配置文件分別複製到這六個目錄下:

cp redis.conf redis-cluster/7001
cp redis.conf redis-cluster/7002
cp redis.conf redis-cluster/7003
cp redis.conf redis-cluster/7004
cp redis.conf redis-cluster/7005
cp redis.conf redis-cluster/7006

並修改以下的配置項。以7001爲例,其他的可進行對比修改:

daemonize yes
port 7001
bind 192.168.253.129
dir /usr/redis/redis-5.0.5/redis-cluster/7001/
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes

隨後我們將redis-server和redis-cli文件分別複製到這六個子目錄下:

cp redis-server ../redis-cluster/7001
cp redis-server ../redis-cluster/7002
cp redis-server ../redis-cluster/7003
cp redis-server ../redis-cluster/7004
cp redis-server ../redis-cluster/7005
cp redis-server ../redis-cluster/7006

cp redis-cli ../redis-cluster/7001
cp redis-cli ../redis-cluster/7002
cp redis-cli ../redis-cluster/7003
cp redis-cli ../redis-cluster/7004
cp redis-cli ../redis-cluster/7005
cp redis-cli ../redis-cluster/7006

然後就可以分別啓動這六個節點了,啓動之後使用ps命令查看是否啓動成功:

./redis-server redis.conf
ps -ef | grep redis

由上所示,六個節點都成功啓動,接着就可以下一步操作了。

因爲從Redis5.0開始,redis-cli中的集羣管理器從Ruby(redis-trib.rb)移植到了C語言代碼,也就是說我們不再需要下載Ruby及其Redis相關的集成,也不再需要執行redis-trib.rb來啓動集羣,只需要redis-cli即可,下面來演示其搭建過程。隨便在一個節點下輸入下面的命令來搭建集羣:

./redis-cli --cluster create 192.168.253.129:7001 192.168.253.129:7002 192.168.253.129:7003 192.168.253.129:7004 192.168.253.129:7005 192.168.253.129:7006 --cluster-replicas 1

上面最後面的1代表着主節點和從節點的比值,放在這裏也就是3個主節點3個從節點,如果配置成0.5則是2主4從,配置成2則是4主2從。當我們輸入完後的效果如下圖所示:

可以看到默認的哈希槽分配,以及每個從節點對應的主節點是誰。我們繼續輸入yes後即可看到集羣搭建成功。最後我們來進行驗證,在7001、7002和7004節點上輸入以下的命令來進行連接:

./redis-cli -c -h 192.168.253.129 -p 7001
./redis-cli -c -h 192.168.253.129 -p 7002
./redis-cli -c -h 192.168.253.129 -p 7004

注意因爲我們現在是集羣模式,所以必須輸入ip和端口號才能連接成功,-c代表集羣模式。這裏我們連接3個節點,7001、7002和7004來進行驗證。然後我們在7001的客戶端上創建一個鍵值對並查看結果:

可以看到這個“name”的key被存儲到了第5798個槽中,同時請求被轉向到7002節點處。我們在7002節點上查看key:

可以看到是有key爲“name”這條數據的,驗證成功。


2 Spring Boot連接

Redis集羣的Spring Boot連接方式非常簡單,只需要在application.properties配置文件中把之前單機配置的ip和端口號註釋掉,換成集羣的nodes節點即可,用逗號分隔:

#spring.redis.host=192.168.253.129
#spring.redis.port=6379
spring.redis.cluster.nodes=192.168.253.129:7001, 192.168.253.129:7002, 192.168.253.129:7003, 192.168.253.129:7004, 192.168.253.129:7005, 192.168.253.129:7006

完成這步操作後就大功告成了,就能像先前那樣通過RedisTemplate來操作Redis了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章