Memcached(主主复制与keepalive高可用)

ops/2025/2/22 5:21:18/

案例环境

cache1:192.168.180.144

cache2:192.168.180.145

cache-api:192.168.180.143

案例过程

前置准备

关闭所有设备防火墙

systemctl stop firewalld && setenforce 0
更改主机名
hostnamectl set-hostname cache1 && bashhostnamectl set-hostname cache2 && bashhostnamectl set-hostname cache-api && bash

配置环境 

配置主主复制

配置cache-api

提前部署好LAMP环境!!!!

下载编译安装工具包
yum -y install gcc gcc-c++
解压包
tar zxf libmemcached-1.0.18.tar.gztar zxf memcached-2.2.0.tgz
启动php
/usr/local/php5/bin/phpizecp -r /usr/local/php5/include/php/ext/ ./

配置编译安装
#配置编译安装libmemcached
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached && make && make install#配置编译安装memcached
cd memcached-2.2.0
./configure --enable-memcached --with-php-config=/usr/local/php5/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl && make && make test && make install

 配置php添加memcached组件
vim /usr/local/php5/php.ini#输入刚刚获得的共享地址extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20121212/"extension=memcached.so

访问并查看是否添加成功
#创建php页面检查
vim /usr/local/httpd/htdocs/index.php<?phpphpinfo();?>
启动http服务并访问
systemctl start httpd#访问服务器IP/index.php
192.168.180.143/index.php

测试memcached-api功能

#访问为空请等待!!可继续做,最后查看连接情况!!

#编写memcached检查测试页面
vim /usr/local/httpd/htdocs/test02.php<?php$memcache = new Memcached();$memcache->addServer('192.168.180.110', 11211);$memcache->set('key', 'Memcache test successful!', 0, 60);$result = $memcache->get('key');unset($memcache);echo $result;?>
重启httpd
​#重启服务
systemctl restart httpd#测试访问
192.168.180.143/test02.php

 配置cache1,2
解压压缩文件
下载安装组件与前置包
yum install -y gcc gcc-c++ psmisc
解压压缩源文件
tar zxf libevent-2.1.8-stable.tar.gz -C /usr/src/tar zxf memcached-1.2.8-repcached-2.2.tar.gz
配置编译安装
#配置编译安装libevent
cd /usr/src/libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent && make && make install#配置memcached
cd memcached-1.2.8-repcached-2.2
./configure --prefix=/usr/local/memcached_replication --enable-replication --with-libevent=/usr/local/libevent
修改配置文件
vim memcached-1.2.8-repcached-2.2/memcached.c#删除多余命令
#ifndef IOV_MAX
# define IOV_MAX 1024
#endif

编译安装memcached
cd memcached-1.2.8-repcached-2.2
make && make install
创建链接文件
ln -s /usr/local/libevent/lib/libevent-2.1.so.6 /usr/lib64/
连接并启动服务
#cache1:
/usr/local/memcached_replication/bin/memcached -d -u root -m 128 -x 192.168.180.145#cache2:
/usr/local/memcached_replication/bin/memcached -d -u root -m 128 -x 192.168.180.144
查看启动情况
netstat -nultp | grep memcache

下载telnet测试

yum -y install telnet
#cache1:telnet 192.168,180,145 11211
set username 0 0 8
20250218
get username

#cache2:telnet 192.168,180,144 11211
get username

配置Memcached+Keepalived

cache1,2
下载keepalived
yum install -y keepalived
cache1修改主配置文件
vim /etc/keepalived/keepalived.conf#建议将源文件内容全部删除直接复制后在做修改!! Configuration File for keepalived
global_defs {router_id route
}vrrp_instance VI_1 {
#设备类型state MASTER
#网卡名称interface ens33virtual_router_id 51
#优先级priority 100advert_int 1
#不主动抢占资源,在高优先级服务器上设置nopreemptauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {
#虚拟IP地址192.168.180.200}
}#虚拟IP地址与端口号
virtual_server 192.168.180.200 11211
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 20
protocol TCP
#两主对端服务器IP
sorry_server 192.168.180.145 11211
#两主本服务器IP
real_server 192.168.180.144 11211 {
weight 3
notify_down /root/memcached.sh
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 11211
}
}
}

在cache2复制cache1的主配置文件进行修改

scp 192.168.180.144:/etc/keepalived/keepalived.conf /etc/keepalived/

配置报错停止文件
#编写停止脚本
echo "/usr/bin/systemctl stop keepalived" > /root/memcached.sh#赋予执行权限
chmod +x /root/memcached.sh
启动服务
systemctl start keepalived
查看VIP启动情况
ip address show dev ens33 | grep 192.168.180.200


http://www.ppmy.cn/ops/160433.html

相关文章

linux 搭建nfs服务(共享文件夹)

linux 搭建nfs服务&#xff08;共享文件夹&#xff09; 要在Linux服务器上创建一个共享目录&#xff0c;并让macOS可以访问和复制拷贝文件&#xff0c;你可以按照以下步骤操作&#xff1a; 这个以ip为192.168.3.200的ubuntu 2022.04的服务器为示例 nfs 服务安装 在Linux服务…

Scrapy分布式爬虫系统

一、概述 在这篇博文中,我们将介绍如何使用Docker来部署Scrapy分布式爬虫系统,包括Scrapyd、Logparser和Scrapyweb三个核心组件。这种部署方式适用于Scrapy项目和Scrapy-Redis分布式爬虫项目。 需要安装的组件: Scrapyd - 服务端,用于运行打包后的爬虫代码,所有爬虫机器都需要…

山石网科×阿里云通义灵码,开启研发“AI智造”新时代

近日&#xff0c;山石网科正式宣布全面接入阿里云通义灵码企业专属版&#xff0c;这标志着山石网科在研发智能化、自动化领域迈出重要一步&#xff0c;为研发工作注入强大的AI动力&#xff0c;实现多维度的效率飞跃。 此次合作&#xff0c;阿里云通义灵码依托强大的AI能力&…

LLM论文笔记 9: Neural Networks and the Chomsky Hierarchy

Arxiv日期&#xff1a;2022.9.29机构&#xff1a;Google DeepMind / Stanford 关键词 transformer架构原理乔姆斯基体系长度泛化 核心结论 1. 虽然Transformer理论上具有图灵完备性&#xff0c;但在实践中能力受到位置不变性和有限记忆的限制 2. Transformer在一些任务中表现…

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 18

第18章_MySQL8其它新特性 比如编码设计在8.0后直接默认utf8mb4&#xff0c;解决编码问题&#xff1b;还有登录加密方式的添加 1. MySQL8新特性概述 1. 更简便的NoSQL支持 NoSQL泛指非关系型数据库和数据存储。随着互联网平台的规模飞速发展&#xff0c;传统 的关系型数据库已…

源码方式安装llama.cpp及调试

llama.cpp源码方式安装和调试配置 构建和编译 注意这里是cuda&#xff0c;且要开启debug模式 cmake -B build -DGGML_CUDAON -DCMAKE_BUILD_TYPEDebug cmake --build build --config Debug正在编译&#xff1a; 配置launch.json用于调式&#xff1a; 要根据自己的环境路径…

HttpServletRequest

在 Spring 框架中&#xff0c;HttpServletRequest 和 RequestBody JSONObject 是两种常见的参数注入方式&#xff0c;用于处理 HTTP 请求的数据。 1. HttpServletRequest servletRequest HttpServletRequest 是 Java Servlet API 中的一个接口&#xff0c;Spring MVC 中也使用…

基于 Spring Boot + 微信小程序的短文写作竞赛管理系统设计与实现(源码+文档)

大家好&#xff0c;今天要和大家聊的是一款基于 Spring Boot 微信小程序的“短文写作竞赛管理系统”的设计与实现。项目源码以及部署相关事宜请联系我&#xff0c;文末附上联系方式。 项目简介 基于 Spring Boot 微信小程序的“短文写作竞赛管理系统”设计与实现的主要使用…