Memcache服务

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)

1stats :显示服务器信息、统计数据等

2stats items:显示当前所有item的情况,主要内部的Key的数量


3stats cachedump item_id num :显示指定item中的前num0代表全部)个正在生效的Key


2、对Key-Value对的增删改查

1、新增:指令是set


2、查:查询一个Key是用get指令,查询一个slab中的所有生效的Key详见上节


3、改:可用set指令和replace指令


4、删除:用delete指令,删除一个Key和这个Key过期是一样的


5、一个Key失效或者被delete后,使之再次生效:也是用set指令


6stats 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/