1)看Architecture,是多少,x86就下载x86版的,这个显示和操作系统的多少位没半毛钱关系,不要根据操作系统的多少位来下载,这是个炕,我就被坑了。
(2)看thread safe ,如果是enable ,对于的就是ts版的,否则就是nts版的。
(3)看Compiler,的后缀,一般带有vc11的字样,下载对应的版本
php_memcache-3.0.8-5.6-ts-vc11-x86.zip
http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/
2.修改D:/xampp/php/php.ini
将压缩包里的php_memcache.dll解压缩到D:\xampp\php\ext
在php.ini增加
extension=php_memcache.dll
并在末行添加
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
3.下载memcached
http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available (他这个失效,我找的http://101.110.118.66/s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip,http://101.110.118.24/s3.amazonaws.com/downloads.northscale.com/memcached-win32-1.4.4-14.zip)
以管理员身份运行cmd,进入d:\xampp\memcached
memcached.exe –d install //安装
memcached.exe –d start //启动
.来源网址:http://blog.csdn.net/ruoshuiyx/article/details/54575099
这里写一点我加上的
telnet 连接
telnet 链接 memcache (如白提示telnet不是内部或外部命令,可百度解决,大概是到控制面板-》程序和功能-》右边有一个打开或关闭windows功能-》把telnet 客户端选上就可以了)
cmd 命令下 输入127.0.0.1 11211 默认端口是11211
进入后 回车后输入 stats 能看到一堆设置就成功了
php 连接
上面第2点要成功执行 可能phpinfo()查看是否有memcache 扩展
写一个简单的测试
$memcache = memcache_connect('localhost', 11211);
if ($memcache) {
$memcache->set("str_key", "String to store in memcached");
$memcache->set("num_key", 123,0,60);
//bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
//Memcache::set()向key存储一个元素值为 var。参数expire是以秒为单位的失效时间, 如果设置为0表明该元素永不过期(但是它可能会因为为了给其他项分配空间而被删除)。如果你希望存储的元素 经过压缩(使用zlib),你可以设置flag的值为MEMCACHE_COMPRESSED。
$array = Array('assoc'=>123, 345, 567);
$memcache->set("arr_key", $array);
echo "<hr>";
var_dump($memcache->get('str_key'));
echo "<hr>";
var_dump($memcache->get('num_key'));
echo "<hr>";
var_dump($memcache->get('arr_key'));
}
else {
echo "连接失败";
}
整合到yii2
配置里增加
[
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
],
'memcache' =>[//共存
'class' => 'yii\caching\MemCache',
'servers' => [
[
'host' => 'localhost',
'port' => 11211,
'weight' => 60,
],
// [
// 'host' => 'localhost',
// 'port' => 11211,
// 'weight' => 60,
// ],
],
],
],
]
方法可以看他的文档 和源代码
简单应用
- get():通过一个指定的键(key)从缓存中取回一项数据。如果该项数据 不存在于缓存中或者已经过期/失效,则返回值 false。
- set():将一项数据指定一个键,存放到缓存中。
- add():如果缓存中未找到该键,则将指定数据存放到缓存中。
- mget():通过指定的多个键从缓存中取回多项数据。
- mset():将多项数据存储到缓存中,每项数据对应一个键。
- madd():将多项数据存储到缓存中,每项数据对应一个键。 如果某个键已经存在于缓存中,则该项数据会被跳过。
- exists():返回一个值,指明某个键是否存在于缓存中。
- delete():通过一个键,删除缓存中对应的值。
- flush():删除缓存中的所有数据
Yii::$app->cache->add('name','allen');