Memcache
1.简介:
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信
2.为什么要用?
MySQL:磁盘上的数据库,读写速度都比较慢
Memcached:内存中的数据库,读写速度都比较快,缺点就是数据容易丢失。
数据存储,数据仓库选择MySQL这种磁盘数据库。
在高并发,业务比较大的情况下建议选择Memcached数据库
工作中,MySQL和Memcached一起使用
3.Memcached在企业的应用场景
作为数据库的前端缓存应用,减少数据库被高并发大量的访问的压力
优点:
Ⅰ.对于用户来讲,用户访问网站更快了,查询数据直接可以从memcached数据库直接调取数据信息
Ⅱ.对于网站来说,数据库降低了压力,只有当内存没有数据时才会请求MySQL数据库。
Ⅲ. 提升了网站并发访问的效率,减少服务器的数量
4.环境准备
centos6.9 web1 IP 10.0.0.7 能够打开word press
centos7.2 memcached IP 10.0.0.21
5.安装Memcached
centos7.2主机安装:
yum -y install memcached
systemctl start memcached.service
测试:
创建:
[root@cache01 ~]# printf "set key008 0 0 10\r\noldboy0987\r\n"|nc 10.0.0.21 11211
STORED
查看:
[root@cache01 ~]# printf "get key008\r\n"|nc 10.0.0.21 11211
VALUE key008 0 10
oldboy0987
END
删除:
[root@cache01 ~]# printf "delete key008\r\n"|nc 10.0.0.21 11211
DELETED
7.web01操作
上传软件包
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
/application/php/bin/phpize
./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir
make
make install
执行成功后:
sed -i '$a extension=memcache.so' /application/php/lib/php.ini
pkill php
/application/php/sbin/php-fpm -t
/application/php/sbin/php-fpm
/application/php/bin/php -m|grep memcache
执行成功后:
7.PHP代码测试
cat >>/application/nginx/html/blog/mc.php<<'EOF'
<?php
$memcache = new Memcache;
$memcache->connect('10.0.0.21', 11211) or die ("Could not connect");
$memcache->set('key20180314', 'hello,world');
$get_value = $memcache->get('key20180314');
echo $get_value;
?>
EOF
8.WEB管理memcached
tar xf memadmin-1.0.12.tar.gz -C /application/nginx/html/blog/
浏览器访问http://blog.etiantian.org/memadmin
!
cd /application/nginx/html/blog/wp-content/
rz
grep 127.0.0.1 object-cache.php
sed -i 's#127.0.0.1#10.0.0.21#' object-cache.php
web使用word press上传博文利用memcached查看缓存
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端