前端学PHP之MemCache
前面的话
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。本文将详细介绍MemCache的内容
作用
Memcache是danga的一个项目,最早是LiveJour MemCachenal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用
Memcache是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作
MemCache缓存系统最主要的就是为了提高动态网页应用,分担数据库检索的压力。对于网站流量比较大的,可以使用memcache缓解数据库的压力,主要的焦点集中在以下两个方面:1. 使用MemCache作为中间缓存层减少数据库的压力和2. MemCache分布式的应用
安装
1、下载软件,解压后,共以下三个文件

2、安装到windows服务,打开cmd命令行,进入memcached目录,执行memcached -d install命令,安装服务
[注意]如果在没有安装过的情况下,出现"failed to install service or service already installed"错误,可能是cmd.exe需要用管理员身份运行

3、启动服务,执行memcached.exe -d start

最后,在计算机->管理->服务中,可以找到memcached服务

管理
memcache的端口号是11211,在启动memcache服务后进行连接
[注意]telnet在windows下默认是不开启的,所以需要手动开启
telnet 127.0.0.1 11211

进入memcache服务后,输入stats命令,会出现如下所示

stats命令的功能正如其名:转储所连接的memcached实例的当前统计数据。在下例中,执行 stats 命令显示了关于当前 memcached 实例的信息
STAT pid 22459 进程ID
STAT uptime 1027046 服务器运行秒数
STAT time 1273043062 服务器当前unix时间戳
STAT version 1.4.4 服务器版本
STAT pointer_size 64 操作系统字大小(这台服务器是64位的)
STAT rusage_user 0.040000 进程累计用户时间
STAT rusage_system 0.260000 进程累计系统时间
STAT curr_connections 10 当前打开连接数
STAT total_connections 82 曾打开的连接总数
STAT connection_structures 13 服务器分配的连接结构数
STAT cmd_get 54 执行get命令总数
STAT cmd_set 34 执行set命令总数
STAT cmd_flush 3 指向flush_all命令总数
STAT get_hits 9 get命中次数
STAT get_misses 45 get未命中次数
STAT delete_misses 5 delete未命中次数
STAT delete_hits 1 delete命中次数
STAT incr_misses 0 incr未命中次数
STAT incr_hits 0 incr命中次数
STAT decr_misses 0 decr未命中次数
STAT decr_hits 0 decr命中次数
STAT cas_misses 0 cas未命中次数
STAT cas_hits 0 cas命中次数
STAT cas_badval 0 使用擦拭次数
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 15785 读取字节总数
STAT bytes_written 15222 写入字节总数
STAT limit_maxbytes 1048576 分配的内存数(字节)
STAT accepting_conns 1 目前接受的链接数
STAT listen_disabled_num 0
STAT threads 4 线程数
STAT conn_yields 0
STAT bytes 0 存储item字节数
STAT curr_items 0 item个数
STAT total_items 34 item总数
STAT evictions 0 为获取空间删除item的总数
使用命令quit,就可以退出memcache操作界面了

命令
通过使用memcache.exe -h可以查看memcache支持的命令

-p <num> 设置端口号(默认不设置为: 11211)
-U <num> UDP监听端口(默认: 11211, 0 时关闭)
-l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)
-d 独立进程运行
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u <username> 绑定使用指定用于运行进程<username>
-m <num> 允许最大内存用量,单位M (默认: 64 MB)
-P <file> 将PID写入文件<file>,可以使得后边进行快速进程终止, 需要与-d 一起使用
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
一般地,memcache使用以下5个常用的命令
stats: 当前所有memcached服务器运行的状态信息
add: 添加一个数据到服务器
set: 替换一个已经存在的数据,如果数据不存在,则和add命令相同。
get: 从服务器端提取指定的数据。
delete: 删除指定的单个数据,如果要清除所有数据,可以使用flush_all指令
关于memcache的错误提示主要有以下三个指令:
ERROR -- 普通错误信息,比如指令错误
CLIENT_ERROR <错误信息> -- 客户端错误
SERVER_ERROR <错误信息> --服务器端错误
命令格式
格式:<命令> <键> <标记> <有效期> <数据长度>
命令:add(添加)、set(修改)、delete(删除)、get(获取)
<键>-key:发送过来指令的key内容
<标记>-flags:调用set指令保存数据时的flags标记
有效期:数据在服务器上的有效期限,如果是0,则数据永远有效,单位是秒
数据的长度:block data 块数据的长度,一般在这个长度结束以后下一行跟着block data数据内容
返回值
发送完数据后,客户端一般等待服务器端的返回,服务器端的返回值包括以下两种:
STORED 数据保存成功
NOT_STORED 数据保存失败,是因为服务器端这个数据key已经存在
下面以add one 1 0 5为例,add表示添加数据,one表示键名,1表示标记,0表示有效期永久,5表示长度为5
回车后输入12345,再回车,表示键值为12345,并保存成功

通过get one可以找到键名one的相关信息及键值

然后通过set one将标记改为2

再通过get one可以找到键名one的相关信息及键值

通过delete one删除one,再通过get one读取one的信息时为空

一般地,使用memcache并不常用遍历操作,但可以模拟出遍历的行为。首先,先存入5个数据

然后,执行stats items命令,可以看到出现很多的items行。执行stats cachedump 1 0命令。这里的1表示上面图中items后面的数字,0标示显示全部的数据,如果是1就标示只显示1条

前端学PHP之MemCache的更多相关文章
- 前端学做 PPT
前端学做 PPT 公司做技术分享.年终总结都需要用到ppt. 要快速.省事的做出高质量的 ppt,一方面需要熟练使用制作 ppt 的工具,另一方面得知道用工具做成什么样子才是好作品.前者比较简单,后者 ...
- 前端学PHP之PHP操作memcache
× 目录 [1]安装 [2]连接 [3]增删改查[4]分布式[5]状态[6]安全[7]应用 前面的话 和访问mysql服务器类似,PHP也是作为客户端API访问memcached服务器的,所以同样需要 ...
- 前端学HTTP之网络基础
× 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...
- 前端学HTTP之数据传输
× 目录 [1]客户机处理 [2]集线器处理 [3]路由器1处理[4]路由器2处理[5]交换机处理[6]服务器处理[7]反向传输 前面的话 上一篇中,介绍了网络基础.本文将详细介绍客户机在浏览网页ab ...
- 前端学PHP之Session
前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...
- 前端学PHP之自定义模板引擎
前面的话 在大多数的项目组中,开发一个Web程序都会出现这样的流程:计划文档提交之后,前端工程师制作了网站的外观模型,然后把它交给后端工程师,它们使用后端代码实现程序逻辑,同时使用外观模型做成基本架构 ...
- 前端学PHP之Smarty模板引擎
前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进. ...
- 前端学PHP之会话Session
前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...
- 前端学Markdown
前面的话 我个人理解,Markdown就是一个富文本编辑器语言,类似于sass对于css的功能,Markdown也可以叫做HTML预处理器,只不过它是一门轻量级的标记语言,可以更简单的实现HTML ...
随机推荐
- C# 破解 Reflector8.5
一.分析 破解.net .dll,可以使用reflector,但官方提供的reflector是需要购买的,因此,破解reflector势在必行. 二.破解Reflector具体步骤 下面为详细的破解步 ...
- JS里面Data日期格式转换
var format = function(time, format){ var t = new Date(time); var tf = function(i){return (i ...
- Javascript面向对象类文章目录
1.javaScript的原型继承与多态性 2.JavaScript的继承实现方式 3.JS中 call() 与apply 方法
- kindeditor4整合SyntaxHighlighter,让代码亮起来
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换 ...
- Android混合开发之WebView与Javascript交互
前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...
- javascript匹配各种括号书写是否正确
今天在codewars上做了一道题,如下 看上去就是验证三种括号各种嵌套是否正确书写,本来一头雾水,一种括号很容易判断, 但是三种怎么判断! 本人只是个前端菜鸟,,不会什么高深的正则之类的. 于是,在 ...
- [C#] 了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数
了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数 目录 简介 特点 方法的参数 方法的返回值 与批处理交互的一个示例 简介 我们知道,新建一个控制台应用程序的时候,IDE 会同时创建 ...
- 使用HTML5的cavas实现的一个画板
<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-e ...
- Flex 布局教程:实例篇
该教程整理自 阮一峰Flexible教程 今天介绍常见布局的Flex写法.你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我的主要参考资料是Landon Schropp的文章和Solved ...
- H3 BPM初次安装常见错误详解1-4
错误1: 首次安装完成无法访问,效果如下. 错误原因:没有配置IIS. 解决方法: 控制面板-程序-打开或关闭Windows功能,选择internet信息服务. 因为安装的时候没有没有iis,所以程序 ...