搭建Redis簡易叢集實現主從複製和讀寫分離
redis不禁支援去中心化的叢集模式,也可以實現主從複製叢集。下面我將一步步搭建一套簡易的主從複製叢集,幫助大家理解主從複製和哨兵模式。
1. Redis的下載安裝
請參考:Linux(centos7)安裝配置並啟動Redis全過程及make報錯問題解決
2. 主從複製模型
我畫了個草圖,這是一個一主二從的簡易叢集模型,master用來寫入,slave用來讀資料,實現讀寫分離。我們接下來就是要實現這樣一個叢集系統。
3. 叢集環境搭建
我這裡使用了一臺centos7的虛擬機器來搭建這個demo,所需環境就是:
JDK,linux,Redis就夠了。
複製多個redis.conf檔案,啟動redis服務端使用不同的配置檔案啟動,即可模擬多服務
1. 啟動你的redis服務,輸入info replication命令檢視當前庫的資訊
127.0.0.1:6379> info replication
# Replication
role:master //當前庫為master
connected_slaves:0 //連線當前master的從機數目為0
master_replid:7b7cb8aa6a54e4fb2b717e59d6d626578c7b7f3f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
叢集部署後可以通過此命令檢視資訊。
2. 新建conf目錄,將redis配置檔案拷貝三次放進conf目錄
[root@localhost bin]# mkdir conf
[root@localhost bin]# cp redis.conf conf/redis6380.conf
[root@localhost bin]# cp redis.conf conf/redis6381.conf
[root@localhost bin]# cp redis.conf conf/redis6382.conf
這樣我們就得到了三份配置檔案,下面我們對它們做一點更改
3. 更改主機配置檔案
我們把redis6380.conf配置為主機(master)
進入conf目錄,vim redis6380.conf編輯配置檔案
- 首先我們需要更改埠號,與配置檔名稱對應
- 後臺執行記得改成yes
- 更改pid 檔名稱,避免重複
- 更改log檔名稱避免重複
- 更改rdb檔名,避免重複
4. 更改從機配置檔案,參考主機更改方式
和主機更改的地方全都是一樣的,我們可以把埠分別設定成6381和6382。log檔案和rdb檔案同樣改一下,避免重名。
5. 分別啟動
我們可以啟動多個命令終端來分別開啟他們,或者使用Xshell多個tab頁面。
每一個執行以下命令(注意更改埠號):
全部啟動之後,檢視程式資訊再次確認ps -ef|grep redis:
上圖說明全部的服務都已經成功開啟了,叢集環境搭建完畢。
4. 配置主從複製
現在我們可以在每個服務輸入info replication,你會發現現在三臺redis都是主機,而且他們之間沒有任何聯絡。我們需要手動配置。
- 開啟6381的客戶端,使用slaveof命令,為它指定主機。然後info replication就會發現它的身份變成了從機。
同樣的,為6382指定6380為主機,這樣基本上已經形成了一主二從的局面,其中6380為共同的主機,6381/6382都是從機。
大家可以在分別的客戶端進行一點資料的讀寫操作,你會發現主機可讀可寫,從機只讀,他們之間資料共享。
下一篇我們將為他們配置哨兵機制,以備主機當機的特殊情況發生。
相關文章
- 搭建Redis“主-從-從”模式叢集並使用 RedisTemplate 實現讀寫分離Redis模式
- Redis搭建主從複製、哨兵叢集Redis
- [Mysql]主從複製和讀寫分離MySql
- 搭建Redis哨兵叢集並使用RedisTemplate實現讀寫分離Redis
- MySQL主從複製讀寫分離MySql
- 搭建MySQL主從實現Django讀寫分離MySqlDjango
- Mysql-主從複製與讀寫分離MySql
- Redis的主從複製,哨兵和Cluster叢集Redis
- (八)Redis 主從複製、切片叢集Redis
- MySQL叢集之 主從複製 主主複製 一主多從 多主一叢 實現方式MySql
- Docker Compose搭建MySQL主從複製叢集DockerMySql
- DM7搭建讀寫分離叢集
- MYSQL 主從 + ATLAS 讀寫分離 搭建MySql
- 寶塔 liunx redis 設定讀寫分離主從複製 + 哨兵自動值守Redis
- redis 主從複製實現Redis
- 在 Istio 中實現 Redis 叢集的資料分片、讀寫分離和流量映象Redis
- redis叢集之主從複製叢集的原理和部署Redis
- Redis主從同步叢集搭建Redis主從同步
- Linux下MySQL主從複製(GTID)+讀寫分離(ProxySQL)-實施筆記LinuxMySql筆記
- Mariadb之主從複製的讀寫分離
- redis安裝,主從複製,哨兵機制,叢集Redis
- Redis哨兵模式(sentinel)學習總結及部署記錄(主從複製、讀寫分離、主從切換)Redis模式
- 基於Dokcer搭建Redis叢集(主從叢集)Redis
- MySQL怎麼實現主從同步和Django實現MySQL讀寫分離MySql主從同步Django
- Redis叢集搭建 三主三從Redis
- Redis叢集搭建(三主三從)Redis
- discuz 配置讀寫分離(主寫從讀)
- 資料庫讀寫分離,主從同步實現方法資料庫主從同步
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- 7、tomcat叢集+MySQL主從複製TomcatMySql
- springboot+mybatis+druid實現mysql主從讀寫分離(五)Spring BootMyBatisUIMySql
- 簡單搭建MySQL主從複製MySql
- Redis 主從複製詳細解讀Redis
- DM8配置讀寫分離叢集
- Mysql讀寫分離叢集的搭建且與MyCat進行整合MySql
- redis持久化和主從複製Redis持久化
- 簡單實踐實現 MySQL 主從複製MySql
- Mycat2+Mysql一主一從實現讀寫分離配置MySql