CentOS 7上Memcached的安裝、配置及高可用架構搭建

? ? ? ?Memcached是一款高性能的分布式內存緩存系統,常用于加速動態Web應用的響應。本文將在CentOS 7上詳細介紹Memcached的安裝、配置,以及如何實現Memcached的高可用架構。


(1)、搭建memcached 主主復制架構

Memcached 的復制功能支持多個 Memcached 之間相互復制(雙向復制,主備都是可讀可寫的),可以解決 Memcached 的容災問題。

memcached 本身不支持相互復制,需要卸載rpm 安裝的memcached ,換帶有支持復制功能的

memcached;

yum -y remove memcached

(2)、環境準備

假設有兩臺服務器用于 Memcached 主主復制,分別為 Server A(10.1.1.7)和 ServerB(10.1.1.12)。確保兩臺服務器都運行 CentOS 7 系統,并且網絡可以正常通信。

(3)、安裝依賴

在兩臺服務器上都執行以下命令安裝編譯所需的依賴:

yum install -y gcc make libevent-devel

(4)、下載并安裝支持復制的 Memcached(repcached)

repcached 是實現 Memcached 復制功能的擴展,以下是安裝步驟:

1. 下載 repcached

如果上述鏈接不可用,你可以在 SourceForge 等網站上查找合適的版本。

wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz

  1. 解壓文件

tar -xzvf memcached-1.2.8-repcached-2.2.tar.gz

cd memcached-1.2.8-repcached-2.2

  1. 配置編譯選項

./configure --prefix=/usr/local/memcached --enable-replication --with- libevent=/usr/lib6/

  1. 編譯并安裝

make

make install

編譯過程中報錯處理:

修改完文件,執行如下命令:

vi memcached.c //改成如下樣子,刪了兩行內容

55 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */

56 #ifndef IOV_MAX

57 # define IOV_MAX 1024

58 #endif

?vim replication.c??//修改添加一行

make clean

make &&make install

(5)、配置主主復制

1. 啟動 Server A 的 Memcached

?useradd memcached

?cd /usr/local/memcached/bin

?./memcached -d -u memcached -m 64 -l 10.1.1.7 -p 11211 -x 10.1.1.22

參數說明:

-d :以守護進程模式運行。

-u root :以 root 用戶身份運行。

-m 64 :分配 64MB 內存給 Memcached。

-l 192.168.1.10 :監聽的 IP 地址。

-p 11211 :監聽的端口。

-x 192.168.1.11 :指定要同步數據的對端服務器 IP。

2. 啟動 Server B 的 Memcached

參數含義與 Server A 類似,只是監聽 IP 和同步對端 IP 相反。

cd /usr/local/memcached/bin

?./memcached -d -u memcached -m 64 -l 10.1.1.22?-p 11211 -x 10.1.1.7

(6)驗證主主復制

1. 在 Server A 插入數據

  1. 在 Server B 驗證數據

如果能獲取到在 Server A 上插入的數據,說明主主復制配置成功。同理,在 Server B 上插入數據,也應該能在 Server A 上獲取到。

搭建memcached 主主復制+keepalived 高可用

  1. 在兩個節點上都安裝keepalived

yum -y install keepalived ipvsadm

  1. 在10.1.1.7?上的配置

Vi?/etc/keepalived/keepalived.conf

vrrp_script chk_memcached {

script "/usr/bin/pgrep memcached"

interval 2

weight -20

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

10.x.x.x

}

track_script {

chk_memcached

}

}

[root@gyh keepalived]#

在10.1.1.22上,僅修改state和priority

state BACKUP

priority 90

  1. 啟動keepalived

systemctl start keepalived

systemctl enable keepalived

(4) 測試故障切換

手動停止memcached: 在 10.1.1.7(master)

pkill -9 memcached

觀察vip 飄逸

ip addr show ens33

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

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

相關文章

告別進度失控:用燃盡圖補上甘特圖的監控盲區

在職場中,項目經理最頭疼的莫過于“計劃趕不上變化”。明明用甘特圖排好了時間表,任務卻總像脫韁野馬——要么進度滯后,要么資源分配失衡。甘特圖雖能直觀展示任務時間軸,但面對突發風險或團隊效率波動時,它更像一張“…

爬蟲-oiwiki

我們將BASE_URL 設置為 "https://oi-wiki.org/" 后腳本就會自動開始抓取該url及其子頁面的所有內容,并將統一子頁面的放在一個文件夾中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…

業務中臺與數據中臺:企業數字化轉型的核心引擎

前言:在當今數字化浪潮下,企業為了提升運營效率、加速創新步伐并更好地適應市場變化,業務中臺與數據中臺應運而生,成為企業架構中的關鍵組成部分。本文將深入探討業務中臺和數據中臺的簡介、發展史、技術流環節以及在實際生產中的…

django admin 去掉新增 刪除

在Django Admin中,你可以通過自定義Admin類來自定義哪些按鈕顯示,哪些不顯示。如果你想隱藏“新增”和“刪除”按鈕,可以通過重寫change_list_template或使用ModelAdmin的has_add_permission和has_delete_permission屬性來實現。 方法1&…

基于云原生架構的后端微服務治理實戰指南

一、引言:為什么在云原生時代更需要微服務治理? 在單體應用時代,開發和部署雖然簡單,但隨著系統規模的擴大,單體架構的維護成本急劇上升,部署頻率受限,模塊之間相互影響,最終導致系…

MIT6.S081 - Lab10 mmap(文件內存映射)

本篇是 MIT6.S081 2020 操作系統課程 Lab10 的實驗筆記,目標只有一個:實現文件映射到內存的功能,也就是 mmap。 作為一名 Android 開發者,我可太熟悉 mmap 這個詞兒了。Android 的 跨進程通信 Binder 驅動、圖形內存分配和管理、…

基于BenchmarkSQL的OceanBase數據庫tpcc性能測試

基于BenchmarkSQL的OceanBase數據庫tpcc性能測試 安裝BenchmarkSQL及其依賴安裝軟件依賴編譯BenchmarkSQLBenchmarkSQL props文件配置數據庫和測試表配置BenchmarkSQL壓測裝載測試數據TPC-C壓測(固定事務數量)TPC-C壓測(固定時長)生成測試報告重復測試流程梳理安裝Benchmar…

WinForm真入門(17)——NumericUpDown控件詳解

一、基本概念? NumericUpDown 是 Windows 窗體中用于數值輸入的控件,由文本框和上下調節按鈕組成。用戶可通過以下方式調整數值: 點擊調節按鈕增減數值鍵盤直接輸入使用方向鍵調整 適用于需要限制數值范圍或精確控制的場景(如年齡、參數配…

汽車自動駕駛介紹

0 Preface/Foreword 1 介紹 1.1 FSD FSD: Full Self-Driving,完全自動駕駛 (Tesla) 1.2 自動駕駛級別 L0 - L2:輔助駕駛L3:有條件自動駕駛L4/5 :高度/完全自動駕駛

AiCube 試用 - ADC 水位監測系統

AiCube 試用 - ADC 水位監測系統 水位檢測在水資源管理、城市防洪、農業灌溉、家用電器和工業生產等多領域發揮積極建設作用。利用水位傳感器,可以實現水資源的智能管理,提高生產效率。 本文介紹了擎天柱開發板利用 AiCube 工具快速創建 I/O 電壓讀取&…

秒殺壓測計劃 + Kafka 分區設計參考

文章目錄 前言🚀 秒殺壓測計劃(TPS預估 測試流程)1. 目標設定2. 壓測工具推薦3. 壓測命令示例(ab版)4. 測試關注指標 📦 Kafka Topic 分區設計參考表1. 單 Topic 設計2. 分區路由規則設計(Part…

memcpy 使用指南 (C語言)

memcpy 是 C 語言標準庫中的一個重要函數&#xff0c;用于在內存區域之間復制數據。它是 <string.h> 頭文件中定義的高效內存操作函數之一。 函數原型 void *memcpy(void *dest, const void *src, size_t n); 參數說明 dest: 目標內存地址&#xff0c;數據將被復制到這…

跨境電商貨物體積與泡重計算器:高效便捷的物流計算工具

跨境電商貨物體積與泡重計算器&#xff1a;高效便捷的物流計算工具 工具簡介 貨物體積與泡重計算器是一款免費的在線工具&#xff0c;專門為物流從業者、跨境電商賣家和需要計算貨物運輸體積重量的用戶設計。這款工具可以幫助您快速計算貨物的體積和對應的空運、快遞泡重&…

如何避免爬蟲因Cookie過期導致登錄失效

1. Cookie的作用及其過期機制 1.1 什么是Cookie&#xff1f; Cookie是服務器發送到用戶瀏覽器并保存在本地的一小段數據&#xff0c;用于維持用戶會話狀態。爬蟲在模擬登錄后&#xff0c;通常需要攜帶Cookie訪問后續頁面。 1.2 Cookie為什么會過期&#xff1f; 會話Cookie&…

matlab simulink中理想變壓激磁電流容易有直流偏置的原因分析。

simulink把線性變壓器模塊拉出來&#xff0c;設置沒有繞線電阻的變壓器&#xff0c;激磁電感和Rm都有&#xff0c;然后給一個50%占空比的方波&#xff0c;幅值正負10V&#xff0c;線路中設置一個電阻&#xff0c;模擬導線阻抗。通過示波器觀察激磁電流&#xff0c;發現電阻越小…

電力系統失步解列與振蕩解析

一、基本概念解析 1. 失步&#xff08;Out-of-Step&#xff09; 在電力系統中&#xff0c;失步是指并列運行的同步發電機因功率失衡導致轉子間相對角度超過穩定極限&#xff0c;無法維持同步運行的狀態。具體表現為&#xff1a; 當系統發生短路、負荷突變或故障切除等擾動時&…

ctfhub-RCE

關于管道操作符 windows&#xff1a; 1. “|”&#xff1a;直接執行后面的語句。 2. “||”&#xff1a;如果前面的語句執行失敗&#xff0c;則執行后面的語句&#xff0c;前面的語句只能為假才行。 3. “&”&#xff1a;兩條命令都執行&#xff0c;如果前面的語句為假則直…

Missashe考研日記-day28

Missashe考研日記-day28 1 專業課408 學習時間&#xff1a;2h學習內容&#xff1a; 今天先是預習了OS關于虛擬內存管理的內容&#xff0c;然后聽了一部分視頻課&#xff0c;明天接著學。知識點回顧&#xff1a; 1.傳統存儲管理方式特征&#xff1a;一次性、駐留性。2.局部性原…

01 appium環境搭建

環境搭建 Java JDKNode.jsAndroidStudio(提供sdk)appiumappium Inspector 相關安裝包下載 鏈接&#xff1a;https://pan.xunlei.com/s/VOOf3sCttAdHvlMkc7QygsoJA1# 提取碼&#xff1a;x4s5 AndroidStudio下載安裝sdk AndroidStudio下載 安裝運行&#xff0c;配置代理及測…

指針(4)

1.回調函數 回調函數就是通過函數指針調用的函數。 將函數的指針&#xff08;地址&#xff09;作為一個參數傳遞給另一個函數&#xff0c;當這個指針被調用其所指向的函數時&#xff0c;被調用的函數就是回調函數。回調函數不是由該函數的實現方直接調用&#xff0c;而是在特…