Memcache

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Memcache相关的知识,希望对你有一定的参考价值。

Memory:记忆

Cache:贮存,缓存

由这两个单词合成了 memcache:内存缓存

 

 

Memcache概述

Memcache是一个分布在内存里面缓存系统。在内存里面维护了一张表,来存储各种格式的数据,包括图像,视频,文件以及检索的结果。

Memcachemysql是一样的,是一款客户端/服务器端软件。有IP,有端口(11211),一旦启动,服务器端就处于可用状态

 

 

MemcacheWeb里面的应用

Memcache缓存的主要目的就是分担数据库的检索压力。特别是对于大型网站,比如新浪微博,facebook,如果没有中间缓存区域,数据访问量由于太大,数据库吃不消。

Memcache一般被用于流量比较大(访问量多)的网站,当然,例如公司网站,学校网站,私人网站这种就没必要了。

 

 

使用memcache作为中间缓存区的步骤

直接让php程序memcache里面寻找数据

如果memcache里面没有要取的数据,再让PHP程序去数据库取数据

将数据显示给用户的同时,再将数据保存到memcache里面,并且指定一个缓存时间。

之后如果要取相同的数据,就可以直接去memcache服务器去获取缓存数据,而不用每次都重新连接数据库

 

安装Memcache

 

1.在wampbin文件夹下面新建一个memcache文件夹,将memcached.exe文件拷贝进去

 

 

2.以管理员的形式打开cmd,然后进入到memcache目录下面

 

输入如下的指令:

 

memcached.exe –d install 回车

 

memcached.exe –d start  开始使用memcache

 

netstat –an 查看网络端口状态  如果11211处于listening状态,说明安装成功

 

memcached.exe –d stop  停止使用memcache

 

memcached.exe –d uninstall  卸载memcache

 

memcached.exe –h  显示memcache的帮助

 

-p :监听的端口(默认为11211)

 

-I:连接的IP的地址,默认是本机

 

-d start 开始memcache服务

 

-d stop|shutdown  停止memcache服务

 

-d install 安装memcache

 

-d uninstall 卸载memcache

 

-u 以什么身份运行

 

3.memcache里面添加数据

 

一般我们使用telnet这个工具,该工具是windows系统自带的

 

 

 

默认telnet是没有打开的,需要在程序与功能里面打开【启动或关闭windows功能】,在telnet客户端前面打钩

 

 

 

也是以管理员身份开启cmd 然后输入如下指令:

 

telnet localhost 11211

 

 

 

stats:当前memcached服务器的运行状态

 

 

 

add命令

 

使用add指令添加数据

 

语法:add  键值 标记 有效期(单位是秒,如果写0代表永远有效) 数据长度

 

Add  one  1  0  5

 

Aaaaa

 

输入回车后如果看到STORED代表添加数据成功

 

 

 

Set命令

 

设置数据:如果键值已经存在,则会被替换,如果不存在,则效果和add效果是一样

 

Set one 1 0 2

 

Aa

 

如果看到STORED代表添加数据成功

 

 

 

Get命令

 

获取存储的值得命令

 

Get 键值

 

例如 get one

 

 

 

 

 

Delete命令

 

删除存储的值

 

Delete 键值

 

例如 delete one

 

如果删除一个不存在的值,则会返回NOT_FOUND

 

 

 

flush_all命令

 

清除所有数据

 

 

 

 

 

使用PHP操作memcache

技术分享

这里是通过PHPmemcache添加了一条数据

One Hello memcache

通过telnet查看,可以看到该变量已经成功被添加到了memcache里面

通过手册可以查询到memcachePHP扩展的相关函数

 

$memcache -> get(‘one‘);  获取数据

 

 $memcache -> delete(‘one‘); 删除数据

 

 

 

$memcache -> flush(); 清空memcache里面所有的数据

 

 

 

$memcache -> getstats; 获取服务器的运行状态

 

 

 

 $memcache -> set(‘键名‘,’值’);设置某一个变量的值

 

有一个别名函数:

 

$memcache -> replace  这个为set的别名函数,接收的参数都是和replace一模一样的

 

 

 

$memcache -> add(‘键名‘,’值’); 添加数据

 

 

 

$memcache ->add(‘lamp’,array(‘Linux’,’Apache’,’MySQL’,’PHP’))

 

 

 

注意点:memcache里面无法存入资源类型的变量

 

Memcache的实际应用

 

 

 

 

 

 

 

 

以上是关于Memcache的主要内容,如果未能解决你的问题,请参考以下文章

分布式架构系列:缓存在分布式系统中应用