RedisCluster的安裝、部署、擴容和 Java客戶端調用

Redis下載

  • 官網地址:http://redis.io/

  • 中文官網地址:http://www.redis.cn/

  • 下載地址:http://download.redis.io/releases/

安裝

# (三臺)安裝 C 語言需要的 GCC 環境
yum install -y gcc-c++ 
yum install -y wget
# 下載并解壓縮 Redis 源碼壓縮包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz 
tar -zxf redis-5.0.5.tar.gz -C ../servers/
# 編譯 Redis 源碼,進入 redis-5.0.5 目錄,執行編譯命令
cd redis-5.0.5/src 
make
# 安裝 Redis ,需要通過 PREFIX 指定安裝路徑
mkdir /opt/bigdata/servers/redis-cluster/master1 -p 
make install PREFIX=/opt/bigdata/servers/redis-cluster/master1

error

# make 時 出現:
# zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
make MALLOC=libc
# You need tcl 8.5 or newer in order to run the Redis test
yum install tcl -y

需求

在這里插入圖片描述

(1)搭建Redis5.0集群,要求三主三從,記錄下安裝步驟

(2)能夠添加一主一從(Master4和Slaver4),記錄下安裝步驟

(3)能夠通過JedisCluster向RedisCluster添加數據和取出數據

解答

集群規劃

虛擬機ip持有角色端口
linux01:192.168.80.121master1
slaver1
6379
6380
linux02:192.168.80.122master2
slaver2
6379
6380
linux03:192.168.80.123master3
slaver3
6379
6380
linux01:192.168.80.121(準備添加主從)master4
slaver4
7000
7001

編輯配置文件

# 1.拷貝conf文件到bin下
[root@linux02 redis-5.0.5]# cp redis.conf ../redis/bin/
# 2.編輯conf文件69 # bind 127.0.0.1		# 注掉bind 允許外界訪問
88 protected-mode no	# 將yes改成no,允許外界訪問
92 port 6379			# 端口號
136 daemonize yes		# 將no改成yes,允許后臺啟動
832 cluster-enabled yes	# 開啟cluster

分配啟動目錄

# 拷貝出從機
[root@linux01 redis-cluster]$ cp -r master1/ slaver1
# 修改 端口號
[root@linux01 ~]$ sed -i '92c port 6380' /opt/bigdata/servers/redis-cluster/slaver1/bin/redis.conf
# 查看 修改結果
[root@linux01 ~]$ sed -n '92p' /opt/bigdata/servers/redis-cluster/slaver1/bin/redis.conf
# 發送給 其他兩臺
[root@linux01 servers]$ rsync -rvl /opt/bigdata/servers/redis-cluster root@linux02:/opt/bigdata/servers/
[root@linux01 servers]$ rsync -rvl /opt/bigdata/servers/redis-cluster root@linux03:/opt/bigdata/servers/
# 修改名稱
[root@linux01 servers]$ ssh root@linux02 mv /opt/bigdata/servers/redis-cluster/master1/ /opt/bigdata/servers/redis-cluster/master2/
[root@linux01 servers]$ ssh root@linux02 mv /opt/bigdata/servers/redis-cluster/slaver1/ /opt/bigdata/servers/redis-cluster/slaver2
[root@linux01 servers]$ ssh root@linux03 mv /opt/bigdata/servers/redis-cluster/master1/ /opt/bigdata/servers/redis-cluster/master3/
[root@linux01 servers]$ ssh root@linux03 mv /opt/bigdata/servers/redis-cluster/slaver1/ /opt/bigdata/servers/redis-cluster/slaver3/
# 準備 master4 slaver4
[root@linux01 servers]$ cd /opt/bigdata/servers/redis-cluster/
[root@linux01 redis-cluster]$ cp -r master1/ master4
[root@linux01 redis-cluster]$ cp -r master1/ slaver4
[root@linux01 redis-cluster]$ sed -i '92c port 7000' /opt/bigdata/servers/redis-cluster/master4/bin/redis.conf
[root@linux01 redis-cluster]$ sed -i '92c port 7001' /opt/bigdata/servers/redis-cluster/slaver4/bin/redis.conf

編輯起服務腳本

start-rediscluster.sh

#!/bin/bash
pdir='/opt/bigdata/servers/redis-cluster'
user=`whoami`echo $pdir
for((i=1; i<4; i++)); doecho ---------------- linux0$i starting -------------------ssh $user@linux0$i 'cd '$pdir'/master'$i'/bin; ./redis-server ./redis.conf'ssh $user@linux0$i 'cd '$pdir'/slaver'$i'/bin; ./redis-server ./redis.conf'echo ---------------- linux0$i end -------------------
done

啟動集群

# 啟動集群chmod 777 start-rediscluster.sh
./ start-rediscluster.sh[root@linux01 redis-cluster]# ./start-rediscluster.sh 
/opt/bigdata/servers/redis-cluster
---------------- linux01 starting -------------------
8067:C 22 Dec 2020 13:12:34.458 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8067:C 22 Dec 2020 13:12:34.458 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=8067, just started
8067:C 22 Dec 2020 13:12:34.458 # Configuration loaded
8080:C 22 Dec 2020 13:12:34.648 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8080:C 22 Dec 2020 13:12:34.648 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=8080, just started
8080:C 22 Dec 2020 13:12:34.648 # Configuration loaded
---------------- linux01 end -------------------
---------------- linux02 starting -------------------
7909:C 22 Dec 2020 13:12:34.837 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7909:C 22 Dec 2020 13:12:34.837 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=7909, just started
7909:C 22 Dec 2020 13:12:34.837 # Configuration loaded
7921:C 22 Dec 2020 13:12:35.030 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7921:C 22 Dec 2020 13:12:35.030 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=7921, just started
7921:C 22 Dec 2020 13:12:35.030 # Configuration loaded
---------------- linux02 end -------------------
---------------- linux03 starting -------------------
7902:C 22 Dec 2020 13:12:35.238 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7902:C 22 Dec 2020 13:12:35.238 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=7902, just started
7902:C 22 Dec 2020 13:12:35.238 # Configuration loaded
7914:C 22 Dec 2020 13:12:35.415 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7914:C 22 Dec 2020 13:12:35.415 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=7914, just started
7914:C 22 Dec 2020 13:12:35.415 # Configuration loaded
---------------- linux03 end -------------------

# 添加 主從關系
[root@linux01 redis-cluster]# ./master1/bin/redis-cli --cluster create 192.168.80.128:6379 192.168.80.129:6379 192.168.80.130:6379 192.168.80.128:6380 192.168.80.129:6380 192.168.80.130:6380 --cluster-replicas 1

在這里插入圖片描述

# 命令客戶端連接集群
[root@linux01 redis-cluster]# ./master1/bin/redis-cli -p 6379 -c# 查看節點狀態
127.0.0.1:6379> cluster nodes
b5a44319b12c3eaef610a28ca87033bb3445de94 192.168.80.129:6379@16379 master - 0 1608615527906 2 connected 5461-10922
5b5ac4ecd698bf1c02d8e931d267ec4bf9480564 192.168.80.128:6380@16380 slave cb05fcf924e135627ef2ea065911e3429cdbba0a 0 1608615528000 4 connected
923406a5110e9effe574e225785c973bab37df13 192.168.80.128:6379@16379 myself,master - 0 1608615527000 1 connected 0-5460
6e1d97680c0e8b6cc25b70c838a5a31c5d30f61a 192.168.80.130:6380@16380 slave b5a44319b12c3eaef610a28ca87033bb3445de94 0 1608615526895 6 connected
76dda73e1889613a17250aefaa10c2d60c3689f5 192.168.80.129:6380@16380 slave 923406a5110e9effe574e225785c973bab37df13 0 1608615528917 5 connected
cb05fcf924e135627ef2ea065911e3429cdbba0a 192.168.80.130:6379@16379 master - 0 1608615525000 3 connected 10923-16383

注error: 不能用ip 代理名
在這里插入圖片描述

擴容

# 啟動 master4 slaver4
[root@linux01 master4]# ./bin/redis-server ./bin/redis.conf 
8174:C 22 Dec 2020 13:44:30.996 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8174:C 22 Dec 2020 13:44:30.996 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=8174, just started
8174:C 22 Dec 2020 13:44:30.996 # Configuration loaded[root@linux01 slaver4]# ./bin/redis-server ./bin/redis.conf 
8179:C 22 Dec 2020 13:44:54.980 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8179:C 22 Dec 2020 13:44:54.980 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=8179, just started
8179:C 22 Dec 2020 13:44:54.980 # Configuration loaded# 連接集群
## 添加 master4
[root@linux01 redis-cluster]# ./master4/bin/redis-cli --cluster add-node 192.168.80.128:7000 192.168.80.128:6379

在這里插入圖片描述

## 添加 slaver4
[root@linux01 slaver4]# ./bin/redis-cli --cluster add-node --cluster-slave --cluster-master-id 951955fc1a9df7d4b30cdaec5ba2624ed7d2786e 192.168.80.128:7001 192.168.80.128:7000

在這里插入圖片描述

# 查看節點
127.0.0.1:6379> cluster nodes
951955fc1a9df7d4b30cdaec5ba2624ed7d2786e 192.168.80.128:7000@17000 master - 0 1608616973959 7 connected
5b5ac4ecd698bf1c02d8e931d267ec4bf9480564 192.168.80.128:6380@16380 slave cb05fcf924e135627ef2ea065911e3429cdbba0a 0 1608616972949 4 connected
cb05fcf924e135627ef2ea065911e3429cdbba0a 192.168.80.130:6379@16379 master - 0 1608616969930 3 connected 10923-16383
d055900e46fa866bf3b69c14d4d96f40ccb74ab8 192.168.80.128:7001@17001 slave 951955fc1a9df7d4b30cdaec5ba2624ed7d2786e 0 1608616971940 7 connected
b5a44319b12c3eaef610a28ca87033bb3445de94 192.168.80.129:6379@16379 myself,master - 0 1608616967000 2 connected 5461-10922
923406a5110e9effe574e225785c973bab37df13 192.168.80.128:6379@16379 master - 0 1608616970000 1 connected 0-5460
6e1d97680c0e8b6cc25b70c838a5a31c5d30f61a 192.168.80.130:6380@16380 slave b5a44319b12c3eaef610a28ca87033bb3445de94 0 1608616971000 6 connected
76dda73e1889613a17250aefaa10c2d60c3689f5 192.168.80.129:6380@16380 slave 923406a5110e9effe574e225785c973bab37df13 0 1608616972000 5 connected


---------------------
作者:Wang·Br
來源:CSDN
原文:https://blog.csdn.net/weixin_44847293/article/details/111537001
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/284207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CloudCompare教程】001:CloudCompare中文版下載與安裝圖文教程

CloudCompare是一款功能強大的點云后處理軟件,本文講解CloudCompare中文版下載與安裝方法。 文章目錄 一、CloudCompare下載地址二、CloudCompare安裝教程三、CloudCompare中文設置一、CloudCompare下載地址 官方下載地址:http://www.danielgm.net/cc/release/ 二、CloudComp…

ML.NET相關資源整理

在人工智能領域&#xff0c;無論是機器學習&#xff0c;還是深度學習等&#xff0c;Python編程語言都是絕對的主流&#xff0c;盡管底層都是C實現的&#xff0c;似乎人工智能和C#/F#編程語言沒什么關系。在人工智能的工程實現&#xff0c;通常都是將Python訓練好的人工智能模型…

帶參數的宏替換

帶參數的宏替換因各種需求疊加&#xff0c;替換規則很怪異&#xff1a; 1、首先將實參替換形參&#xff0c;并展開宏 2、如果1步展開后&#xff0c;有#或者##&#xff0c;那么停止替換。 3、如果1步展開后&#xff0c;沒有#或者##&#xff0c;且參數也是宏&#xff0c;那么繼續…

JAVA學習日志(7-1-繼承)

為什么80%的碼農都做不了架構師&#xff1f;>>> 繼承 1.提高代碼復用性 2.讓類與類之間產生關系&#xff0c;有了這個關系才有了多態的特性 **不要為了獲取其他類的功能&#xff0c;簡化代碼而繼承&#xff0c; 必須是類與類之間有所屬關系才可以繼承&#xff0c;所…

BZOJ 1370: [Baltic2003]Gang團伙 [并查集 拆點 | 種類并查集WA]

題意&#xff1a; 朋友的朋友是朋友&#xff0c;敵人的敵人是朋友&#xff1b;朋友形成團伙&#xff0c;求最多有多少團伙 種類并查集WA了一節課&#xff0c;原因是&#xff0c;只有那兩種關系才成立&#xff0c;諸如朋友的敵人是朋友之類的都不成立&#xff01; 所以拆點做吧 …

常見Lidar點云數據處理及可視化軟件匯總

常見的點云處理及可視化軟件有&#xff1a; CloudCompare、Globalmapper、Pix4d、ArcGIS&#xff08;Pro&#xff09;、Lidar 360、PCL等等。 文章目錄1. CloudCompare2. Globalmapper3. Pix4d4. ArcGIS&#xff08;Pro&#xff09;5. Lidar 3606. PCL1. CloudCompare CloudCo…

Spring 自帶工具類匯總

斷言 斷言是一個邏輯判斷&#xff0c;用于檢查不應該發生的情況 Assert 關鍵字在 JDK1.4 中引入&#xff0c;可通過 JVM 參數-enableassertions開啟 SpringBoot 中提供了 Assert 斷言工具類&#xff0c;通常用于數據合法性檢查 // 要求參數 object 必須為非空&#xff08;Not…

解決new Thread().Start導致高并發CPU 100%的問題

背景之前接手一個項目的時候&#xff0c;發現到處是new Thread(()>{ //do something }).Start();這么做的目的&#xff0c;無非是為了減少頁面等待時間提高用戶體驗&#xff0c;把一些浪費時間的操作放到新線程中在后臺運行。問題但是這樣帶來的問題是大量的創建線程&#x…

基于 HTML5 Canvas 繪制的電信網絡拓撲圖

電信網結構&#xff08;telecommunication network structure&#xff09;是指電信網各種網路單元按技術要求和經濟原則進行組合配置的組合邏輯和配置形式。組合邏輯描述網路功能的體系結構&#xff0c;配置形式描述網路單元的鄰接關系&#xff0c;即以交換中心&#xff08;或節…

網絡相關配置,SSH服務,bash, 元字符

作業一&#xff1a;臨時配置網絡&#xff08;ip&#xff0c;網關&#xff0c;dns&#xff09;永久配置 設置IP和掩碼ifconfig eth0 192.168.2.2 netmask 255.255.255.0設置網關route add default gw 192.168.2.10[rootbogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0…

【GlobalMapper精品教程】021:利用控制點校正柵格圖像

本文講解GlobalMapper中利用控制點校正柵格圖像的方法,數據為配套實驗數據包中的data021.rar。 文章目錄 一、結果預覽二、校正過程【推薦閱讀】:ArcGIS實驗教程——實驗二:ArcGIS地理配準完整操作步驟 一、結果預覽 二、校正過程 (1)打開圖像。選擇實驗包中的待校正的柵…

[筆記]提升R的性能和突破內存限制的技巧

本文為雪晴數據網《R語言大規模數據分析實戰》 http://www.xueqing.tv/course/56 的課程學習筆記。 該課程目前更新到“第2章 Microsoft R Server簡介”的微軟數據科學家介紹MRS&#xff0c;后續教學主要是關于MRS的內容&#xff0c;再另外學習&#xff0c;所以本文只學習“第1…

WTM:ASP.NET Core快速開發利器!

不少程序員朋友應該都有這個想法&#xff0c;接接私活&#xff0c;賺賺外快&#xff0c;但是從零開發一套系統并不容易&#xff0c;今天給大家推薦一款開箱即用的通用后臺管理系統。一個能夠讓程序猿快速開發的炒雞腳手架&#xff0c;采用.NET Core開源框架&#xff01;github地…

【CloudCompare教程】002:點云繪制模式詳解

文章目錄 1. 按高程著色2. 按索引著色3. 按漸變著色1. 按高程著色 在內容列表中選中點云圖層,點擊【編輯】→【標量領域】→【將坐標導出到SF】。 勾選Z,點擊OK。 高程著色效果: 2. 按索引著色 點擊【編輯】→【標量領域】→【添加點指數為SF】。 索引著色效果:

《首席產品官》成海清 著 圖書目錄 思維導圖

原文檔地址&#xff1a;《首席產品官》成海清

「每天一道面試題」如何理解方法的重載與覆蓋?

方法重載在同一個Java 類中&#xff08;包含父類&#xff09;&#xff0c;如果出現了方法名稱相同&#xff0c;而參數列表不同的情況就叫做重載。方法的重載的規則&#xff1a;&#xff08;1&#xff09;&#xff1a;方法名稱必須相同&#xff08;2&#xff09;&#xff1a;參數…

day63-webservice 01.cxf介紹

CXF功能就比較強了。CXF支持soap1.2。CXF和Spring整合的非常密切。它的配置文件基本就是Spring的配置文件了。CXF是要部署在服務器才能用的。CXF得放到Web容器里面去發布。CXF就可以整合咱們的Web容器。 cxf-2.4.0解壓出來之后 apache-cxf-2.4.2是核心包,apache-cxf-2.4.4-src是…

Java中的static關鍵字解析

static關鍵字是很多朋友在編寫代碼和閱讀代碼時碰到的比較難以理解的一個關鍵字&#xff0c;也是各大公司的面試官喜歡在面試時問到的知識點之一。下面就先講述一下static關鍵字的用法和平常容易誤解的地方&#xff0c;最后列舉了一些面試筆試中常見的關于static的考題。以下是…

微信公眾號授權登錄后報redirect_uri參數錯誤的問題

在進行微信公眾號二次開發的時候&#xff0c;需要通過授權碼模式來進行微信授權。比如&#xff0c;在進行登錄的時候&#xff0c;用戶點擊了登錄按鈕&#xff0c;然后彈出一個授權框&#xff0c;用戶點擊同意后&#xff0c;就可以獲取用戶的OpenId等信息了。這篇文章主要分享下…