当前位置: 首页 > news >正文

高性能内存对象缓存

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 -yecho '<?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-saslmake
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 keepalivedglobal_defs {router_id LB01
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.27.200}
}virtual_server 192.168.27.200 11211 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCP
#对向节点的IP,即memcache02的IPsorry_server 192.168.27.129 11211
#本节点的IPreal_server 192.168.27.128 11211 {weight 1notify_down /root/memcached.shTCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 11211}}
}

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

                                5.在memcache01节点

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

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

! Configuration File for keepalivedglobal_defs {router_id LB02
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.27.200}
}virtual_server 192.168.27.200 11211 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCP
#对向节点的IP,即memcache02的IPsorry_server 192.168.27.128 11211
#本节点的IPreal_server 192.168.27.129 11211 {weight 1notify_down /root/memcached.shTCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 11211}}
}

                                7.在两台memcache节点操作

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

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

                                验证

                                停掉vip所在机器的memcached服务

pkill memcached

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据中心存储市场迎强劲反弹
  • 网络如何发送一个数据包
  • Ubuntu安装cuda
  • 【Qt开发】创建并打开子窗口(QWidget)的注意事项 禁止其他窗口点击、隐藏窗口、子窗口不退出的配置和解决方案
  • TypeScript 快速上⼿ (2)
  • SiLM5932SHO系列SiLM5932SHOCG-DG 12A/12A强劲驱动电流能力 支持主动短路保护功能(ASC)单通道隔离门极驱动器
  • 电子电气架构---主流主机厂电子电气架构华山论剑(上)
  • 类和对象(3)
  • 论文阅读:Real-time Controllable Denoising for Image and Video
  • Kafka集群搭建的两种方式
  • Python之PyInstaller打包EXE程序(带音乐加图片等资源)
  • 微服务实战系列之玩转Docker(十)
  • 快速选型:9款高效人事薪酬管理工具推荐
  • Redis 集群三主三从配置
  • uniapp 中 web-view 向 App 传递消息
  • 【node学习】协程
  • 【RocksDB】TransactionDB源码分析
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • download使用浅析
  • golang中接口赋值与方法集
  • HTTP中GET与POST的区别 99%的错误认识
  • js 实现textarea输入字数提示
  • js如何打印object对象
  • Odoo domain写法及运用
  • ucore操作系统实验笔记 - 重新理解中断
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 工作手记之html2canvas使用概述
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 小程序开发之路(一)
  • 用element的upload组件实现多图片上传和压缩
  • 白色的风信子
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​520就是要宠粉,你的心头书我买单
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #if等命令的学习
  • (2)STM32单片机上位机
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (C)一些题4
  • (Java入门)抽象类,接口,内部类
  • (第二周)效能测试
  • (多级缓存)多级缓存
  • (二)JAVA使用POI操作excel
  • (回溯) LeetCode 77. 组合
  • (三) diretfbrc详解
  • (四)图像的%2线性拉伸
  • (转)原始图像数据和PDF中的图像数据
  • .NET IoC 容器(三)Autofac
  • .NET/C# 使用反射注册事件
  • .NET6 命令行启动及发布单个Exe文件
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net中应用SQL缓存(实例使用)
  • .so文件(linux系统)
  • .ui文件相关
  • :=