1、memcached在项目中的作用和益弊
1.1、作用
a、作Web服务或移动端的页面缓存
快速读取数据,减轻磁盘存储(比如Mysql、ES)服务的压力
b、跨域登录
严格地说,不是跨越,而是跨一个域中的不同主机,现象就是当用户在浏览器中登录某个域中的某个主机后,然后打开这个域中的另外一个(虚拟)主机,能同步登录状态。
1.2、项目使用Memcache缓存服务的益弊
a、防止多个客户端对同一接口中同一部分数据的请求出现并发访问Mysql的情况:对某部分数据的第一次请求会从Mysql里读数据然后把数据刷进ES里,其他用户在请求这部分数据就是从ES里读了。
b、缓存的数据是存储在内存中,接口从缓存里请求时速度更快。
c、不同模块的请求差异化:因为网站或者APP中,某些数据是不常变化的比如专题(就使用缓存),某些数据是经常变化甚至实时变化的比如下单的(不使用缓存)
d、前端访问延迟:比如后台修改一个热搜词或者修改广告位的跳转链接,前端必须要等到缓存里对应的Key到期后才能和后台修改保持一致。
2、memcached和Redis的区别
3、 Windows下使用memcached
1、安装
2、启动(可设置运行用户、监听网卡、端口、占用内存)
3、登陆访问
4、对memcached的基本操作
和在Linux下是一样的
5、退出登陆
6、停止服务
7、卸载
4、linux下使用memcached
1、安装
2、启动(可设置运行用户、监听网卡、端口、占用内存)
3、登陆访问
4、对memcached的基本操作
1、对memcached服务的基本操作(Mem的结构不是库—>Key,而是Item—>Key)
1、stats :显示服务器信息、统计数据等
2、stats items:显示当前所有item的情况,主要内部的Key的数量
3、stats cachedump item_id num :显示指定item中的前num(0代表全部)个正在生效的Key
2、对Key-Value对的增删改查
1、新增:指令是set
2、查:查询一个Key是用get指令,查询一个slab中的所有生效的Key详见上节
3、改:可用set指令和replace指令
4、删除:用delete指令,删除一个Key和这个Key过期是一样的
5、一个Key失效或者被delete后,使之再次生效:也是用set指令
6、stats reset:清空统计数据,和重启服务是一样的
5、退出登陆
6、停止服务
7、卸载
5、php操作memcache服务器
1、在LAMP架构中配置memcache服务
2、PHP代码中对memcached的基本操作
6、使用memcache作页面缓存实例
1、通用做法(关键:变量rows就是表格中的数据)
a、简易流程图
b、数据直观图
c、程序实现图
2、Web的缓存设计(根据各个模块的实际访问量)
1、Web:以云之梦网站为例
7、Mem服务的管理工具
目前市面上,Redis有RedisDesktopManager远程桌面管理工具,ES有head远程Web管理工具。Memcache并没有类似的桌面管理工具,目前只有3种方式可操作Memcache服务:
1、程序开发中直接调用Mmemcache提供的API
就是《5.2、PHP代码中对memcached的基本操作》
2、在Mem服务器上登陆Mem服务
3、Web管理工具(比如phpMemcachedAdmin)
部署指导文档https://www.howtoing.com/how-to-setup-phpmemcachedadmin-on-linux/