Memcache

Memcache (memcache是分版本的,不同的php版本下需要下载相对应的memcache版本)

概念

Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度

应用

MemCache缓存系统最主要的就是为了提高动态网页应用,分担数据库检索的压力。对于网站流量比较大的,可以使用memcache缓解数据库的压力,主要的焦点集中在以下两个方面:        

1. 使用MemCache作为中间缓存层减少数据库的压力。        

2. MemCache分布式的应用

安装

下载memcached-1.2.1-win32.zip。解压放某个盘下面,比如在c:\memcached

以 管理员 身份启动cmd,并切换至memcached.exe文件所在目录下

memcached.exe -d install   安装 memcached.exe -d uninstall 卸载 memcached.exe -d start     启动 memcached.exe -d stop     停止 memcached.exe -h  获取帮助

telnet操作memcache

Telnet  协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力 (现在windows下telne功能没有默认开启,需要在打开或关闭windows功能中打开telnet功能)

连接到memcache telnet 127.0.0.1(服务器) 11211    

退出  ctrl+]  然后在telnet 命令行输入 quit

常用操作命令

stats: 当前所有memcached服务器运行的状态信息

add: 添加一个数据到服务器

add 名 压缩标记 存储时间(0表示永久)  存储长度(长度必须是正好不能多也不能少)       

值 (值需要换行写,在cmd命令行中只能是字符串类型 (在php中可以是字符串,数组或对象)

set: 替换一个已经存在的数据,如果数据不存在,则和add命令相同

set 名 压缩标记 存储时间  存储长度      

get: 从服务器端提取指定的数据。

get 名

delete: 删除指定的单个数据,如果要清除所有数据,可以使用flush_all

delete 名

flush_all

stats cachedump 标记 显示记录数 (0表示显示全部):简单遍历

stats items   查看标记

stats cachedump 1 0

stats状态信息

STAT pid 1552                         服务进程的进程ID

STAT uptime 3792                  服务从启动到当前所经过的时间,单位是秒。

STAT time 1262517674          服务器所在主机当前系统的时间,单位是秒。

STAT version 1.2.6                  组件的版本。这里是我当前使用的1.2.6。

STAT pointer_size 32              服务器所在主机操作系统的指针大小,一般为32或64.

STAT curr_items 1                  表示存放当前的所有缓存对象的数量。不包括已经从缓存中删除的对象。

STAT total_items 2               表示从启动到当前,系统存储过的所有对象数量,包括已经删除的对象。 STAT bytes 593                       表示系统存储缓存对象所使用的存储空间,单位为字节。

STAT curr_connections 2        表示当前系统打开的连接数。

STAT total_connections 28    表示从memcached服务启动到当前时间,系统打开过的连接的总数。

STAT get_hits 2                       表示获取数据成功的次数。

STAT get_misses 1                 表示获取数据失败的次数。

STAT bytes_read 1284           memcached服务器从网络读取的总的字节数。

STAT bytes_written 5362       memcached服务器发送到网络的总的字节数。

STAT limit_maxbytes 67108864    memcached服务缓存允许使用的最大字节数。默认为67108864字节,也就是64M

PHP操作memcache

启用memcache扩展 :  基于PHP原生开发

或启用memcached扩展 :基于libmemcached开发 

php安装memcache扩展 

将对应版本的memcache.dll文件放到PHP扩展目录下

修改php.ini 开启memcache库扩展: (php.ini中或许没有这个扩展,自己写一个就好了

extension_dir = "F:/wamp/php-5.4.45/ext"

extension=php_memcache.dll

检测memcache库扩展是否开启成功 bool extension_loaded('mycache');

连接memcache

实例化memcache类

$memcache=new memcache;

连接memcache服务器

$memcache->connect('127.0.0.1','11211'); (服务器,端口号)

关闭服务器连接

$memcache->close()

增删改查操作

添加 :add("名",值,是否压缩,生存时间)

$memcache->add("test1","This is a test",false,0);

$memcache->add("test2",array("one","two"),MEMCACHE_COMPRESSED,60*60*24*30); $memcache->add("test3",new Test(),MEMCACHE_COMPRESSED,time()+60*60*24*31);

查看:get("名")

$memcache->get("test1");

$memcache->get(array("test1","test2","test3"))

更新:set("名",值,是否压缩,生存时间)     注:名称存在则更新,不存在则为添加,如果只想更新可以使用replace

$memcache->set("test1","This is a test1",false,0);

删除:delete("名" [, int $timeout = 0 ])      注:$timeout表示多少秒内会被删除,默认0为立即删除 $memcache->delete("test1",5);

分布式memcache

创建分布式memcache服务器连接池

$memcache = new Memcache;

$memcache->addServer('172.16.1.1', 11211);

$memcache->addServer('172.16.1.2', 11211);

$memcache->addServer('172.16.1.3', 11211);

 

 

 

转载于:https://my.oschina.net/u/3112236/blog/851902

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值