高性能内存对象缓存

Memcached概述

        一套开源的高性能分布式内存对象缓存系统

        所有的数据都存储在内存中

        支持任意存储类型的数据

        提高网站的访问速度

        

数据存储方式与数据过期方式

        数据存储方式:Slab Allocation

                按组分配内存,每次先分配一个Slab,相当于一个大小为1M的页,然后在1M的空间里根据数据划分大小的Chunk 

        数据过期方式

                LRU:数据空间不足时,会根据LRU的情况淘汰最近最少使用的记录

                Laxzy Expiration :惰性过期,是指使用get时查看记录时间,从而检查记录是否已经过期

部署Memcached实验

        1.修改主机名

        2.在memcache01节点上

                1.上传软件包(libevent-2.1.8-stable.tar.gz,memcached-1.5.1.tar.gz)

                2.下载依赖包

yum -y install gcc gcc-*
tar -zxvf libevent-2.1.8-stable.tar.gz -C /usr/src/
cd /usr/src/libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent
make && make install
cd
tar -zxvf memcached-1.5.1.tar.gz -C /usr/src/
cd /usr/src/memcached-1.5.1/
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
make && make install
cd
/usr/local/memcached/bin/memcached -d -m 128 -u root

                单节点部署成功 

        3.在memcache02节点上

                1.上传软件包(libevent-2.1.8-stable.tar.gz)

                2.下载依赖

yum -y install gcc gcc-*
tar -zxvf libevent-2.1.8-stable.tar.gz -C /usr/src/
cd /usr/src/libevent-2.1.8-stable/
./configure --prefix=/usr/local/libevent
make && make install

        4.操作使用

               1.切换第三台机器(充当客户端)

                2.安装telnet

#类似ssh,主要用于远程登录服务。然而,在某些情况下,这个命令可能只会安装telnet客户端或同时包含客户端和服务器的软件包(如果存在这样的包)
yum -y install telnet

                3.使用telnet管理数据库 

#连接的第一台的IP地址,memcache的端口号
telnet 192.168.27.140 11211

                         添加一个数据,查询数据(第一个0 ,定义的是标记信息,第二个0是过期时间,0是永不过期。第三位数是数据内容长度必须是这个,否则不生效,或者报错)

                         修改一个数据(不仅可以修改数据,还能充当add添加的功能)

                                删除数据

                                清空数据

                                退出(ctrl+} 回车输入quit即可退出telnet)

                4.使用php软件管理

                        1.安装软件包

yum install httpd php php-devel zlib-devel -y

echo '<?php phpinfo(); ?>' > /var/www/html/info.php
systemctl start httpd

                         2.安装完成后,浏览器访问测试安装

http://192.168.27.139/info.php

                                 3.安装引入模块

                                        1.上传依赖包(libmemcached-1.0.18.tar.gz  被 memcached-2.2.0.tgz依赖,所以需要两个包)

                                        2.安装

yum -y install gcc gcc-*
tar -xzvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18/
./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached
make && make install
cd

                                        3.安装memcache

tar zxf memcached-2.2.0.tgz
cd memcached-2.2.0


#使用phpize生成./config命令
phpize
#拷贝php支持文件
cp -r /usr/include/php/ext/ ./

# 配置时使用--disable-memcached-sasl 选项,关闭 Memcached 的 SASL 认证功能,否则会报错
# --with-php-config获取php的信息
./configure \
--enable-memcached \
--with-php-config=/usr/bin/php-config \
--with-libmemcached-dir=/usr/local/libmemcached \
--disable-memcached-sasl

make
make test
make install

                                        4.执行完毕后,在执行一次make install 生成一下php存放的路径

#执行完上诉操作后,会有一个发送邮件的提示,输入n拒绝

make install
#打开配置文件,调整内容
vi /etc/php.ini
extension_dir = "/usr/lib64/php/modules/"
extension=memcached.so

                                        重启服务 

systemctl restart httpd

                刷新网页,查看是否有下图内容,有则memcache即可使用

                        验证memcache是否可用

                                打开网页验证

vi /var/www/html/test.php
<?php
  $memcache = new Memcached();
  $memcache->addServer('192.168.27.140', 11211);
  $memcache->set('key', 'Memcache test successful!', 0, 60);
  $result = $memcache->get('key');
  unset($memcache);
  echo $result;
?>

                                 网页验证(IP为第三台IP)

        部署 带有复制功能的memcache

                1.在第一台机器上关闭冲突启动

pkill memcached

                2.在两台memcache节点上上传软件包(memcached-1.2.8-repcached-2.2.tar.gz) 

                3. 安装

tar zxf memcached-1.2.8-repcached-2.2.tar.gz
cd memcached-1.2.8-repcached-2.2

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

                        1.安装之前要调整代码

vi memcached.c

                        2.删除标记两行

                        3.编译安装

make && make install

                 4.在memcache01节点上

ln -s /usr/local/libevent/lib/libevent-2.1.so.6 /usr/lib64/
#IP指向memcache02的IP
/usr/local/memcached_replication/bin/memcached -d -u root -m 128 -x 192.168.27.130

                 5.在memcache02节点上

ln -s /usr/local/libevent/lib/libevent-2.1.so.6 /usr/lib64/
#IP指向memcache01的IP
/usr/local/memcached_replication/bin/memcached -d -u root -m 128 -x 192.168.27.140

                6.在第三台机器验证。

#连接第一台机器
telnet 192.168.27.140 11211

                7.高可用

                        1.在memcache01 memcache02节点安装 keepalived

cd
yum -y install keepalived

                        2.在memcache01节点

#打开配置文件
vi /etc/keepalived/keepalived.conf
#删除所有内容

                        3.删除所有内容,替换一下内容,按图修改内容

! Configuration File for keepalived

global_defs {
   router_id LB01
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.27.200
    }
}

virtual_server 192.168.27.200 11211 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
#对向节点的IP,即memcache02的IP
    sorry_server 192.168.27.129 11211
#本节点的IP
    real_server 192.168.27.128 11211 {
        weight 1
    notify_down /root/memcached.sh
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 11211
        }
    }
}

                                4.保存退出,切换memcache02节点 

                                5.在memcache01节点

#打开配置文件
vi /etc/keepalived/keepalived.conf
#删除所有内容

                                6.删除所有内容,替换一下内容,按图修改内容

! Configuration File for keepalived

global_defs {
   router_id LB02
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.27.200
    }
}

virtual_server 192.168.27.200 11211 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
#对向节点的IP,即memcache02的IP
    sorry_server 192.168.27.128 11211
#本节点的IP
    real_server 192.168.27.129 11211 {
        weight 1
    notify_down /root/memcached.sh
    TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 11211
        }
    }
}

                                7.在两台memcache节点操作

echo "/usr/bin/systemctl stop keepalived"> /root/memcached.sh
chmod +x memcached.sh

systemctl start keepalived
systemctl enable keepalived

                                验证其中一台是否出现了VIP地址

                                验证

                                停掉vip所在机器的memcached服务

pkill memcached

                                会在另一台机器出现vip地址,实现了故障切换,即高可用

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值