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。

  1. 启动 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 ![](https://i-blog.csdnimg.cn/direct/ab3b1c6ba4c344828f570e0478f95c47.png) (4) 测试故障切换 手动停止memcached: 在 10.1.1.7(master) pkill -9 memcached 观察vip 飘逸 ip addr show ens33 ![](https://i-blog.csdnimg.cn/direct/b406767e54ce414185c05f24081d7a41.png)

相关推荐
不懂的浪漫10 小时前
mqtt-plus 架构解析(六):多 Broker 管理,如何让一个应用同时连接多个 MQTT 服务
spring boot·分布式·物联网·mqtt·架构
不懂的浪漫10 小时前
mqtt-plus 架构解析(十):从内部项目到开源框架,mqtt-plus 的抽取过程与决策
spring boot·mqtt·架构·开源
CoovallyAIHub14 小时前
视频理解新范式:Agent不再被动看视频,LensWalk让它自己决定看哪里
算法·架构·github
kcuwu.14 小时前
从0到1:VMware搭建CentOS并通过FinalShell玩转Linux命令
linux·运维·centos
CoovallyAIHub14 小时前
斯坦福丨AirVLA:将地面机械臂模型迁移至无人机实现空中抓取,成功率从23%提升至50%
算法·架构·github
竹之却15 小时前
【Agent-阿程】OpenClaw智能体架构深度解析与实战应用
架构·大模型应用·ai框架·openclaw
qq_4542450315 小时前
通用引用管理框架
数据结构·架构·c#
独特的螺狮粉15 小时前
云隙一言:鸿蒙Flutter框架 实现的随机名言应用
开发语言·flutter·华为·架构·开源·harmonyos
heimeiyingwang15 小时前
【架构实战】SQL调优实战:从执行计划到索引优化
数据库·sql·架构
两万五千个小时16 小时前
Claude Code 源码:Agent 工具 — 多 Agent 的路由与定义机制
人工智能·程序员·架构