案例环境
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