① memcached可以持久化吗
memcached 是缓存系统,通过名字就可以看出来,官网也明确说了(Free & open source, high-performance, distributed memory object caching system),之所以是缓存系统,就说明它不会作为可靠的数据存储,所以并不支持持久化。
另一个是redis,他是一个存储系统,官网也说了。只不过redis是在内存中存储的,所以速度快,因为是存储系统,所以可以作为一个可靠的数据存储系统。支持持久化。
② 如何改变memcached默认的缓存时间
至于设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)的问题我们该怎么办呢?我们不想设置为永久有效,但是也不想再限制在30天内。那么方法来了,这里就以官方文档的代码为示例代码,如下。
<?php
$memcache_obj = memcache_connect(“localhost”, 11211);
/* 面向过程编程 API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 0);// 永久有效
/* 面向对象编程 API */
$memcache_obj->add(‘var_key', 'test variable', false, time()+24*60*60*30);// 超过30天
?>
③ ThinkPHP5.0怎么使用memcache
在配置文件配置
'cache'=>[
//驱动方式
'type'=>'memcache',
//缓存保存目录
'path'=>CACHE_PATH,
//缓存前缀
'prefix'=>'',
//缓存有效期0表示永久缓存
'expire'=>0,
],
④ 在MemCache中设置有效时间expiry,是怎样设置的
30在MemCache中设置有
⑤ 如何为sae memcache设置有效期
1、下载并安装memcache (1)window下安装memcache. 下载memcached.exe 到d:/memcached/memcached.exe.在运行cmd 输入 d:/memcached/memcached.exe -d install安装 。 (2)运行d:/memcached/memcached.exe -d start 启动memcache
⑥ 如何查找memcache中过期的数据
如何遍历memcache
stats命令
memcache的stats命令包括:
1. stats
2. stats reset
3. stats malloc
4. stats maps
5. stats sizes
6. stats slabs
7. stats items
8. stats cachemp slab_id limit_num
9. stats detail [on|off|mp]
通过命令完成遍历
通过这些stats命令我们就可以完成memcache存储的内容的遍历,OK,下面我们通过telnet直接连接到memcache通过这些命令来完成相关的操作。
telnet到192.168.15.225(局域网测试机器)的memcache服务器
执行stats items命令,可以看到出现 很多的items行。
执行stats cachemp 3 0命令。这里的3表示上面图中items后面的数字,0标示显示全部的数据,如果是1就标示只显示1条。
下图为执行后的结果,item后面的字符串为key
通过上面列出的key我们就可以遍历所有的数据了,下面我们取出某一条数据,key为Uc!uLh的数据。
到这里,你也许明白了怎么去遍历memcache的数据了。
求采纳~~~~
⑦ PHP可以拿到memcache中的key的过期时间吗
memcached 数据过期机制 lazy expiration
内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间,换句话说,也不能 检测 某个key的过期时间。
可以使用一种较笨的方法:
definde('MEM_TIME_OUT',1800);
$memKey = "testkey";
$val = 'This is test value';
mem_set($key,$val); //调用
function mem_set($key,$val) {
$memcache -> set($memKey,$val, 0, MEM_TIME_OUT);
//当调用set 的时候顺便加一条记录时间
$memcache -> set('TIME_'.$memKey,time(), 0, MEM_TIME_OUT);
}
function mem_get($key,$is_time = false) {
$memKey = $is_time ? 'TIME_'.$key : $key;
$val = $memcache -> get($key);
if($is_time) {
$val = MEM_TIME_OUT - (time() - $val);
}
return $val;
}
⑧ memcache 必须要设置flushinterval吗
Memcache类摘要
Memcache {
bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callback $failure_callback [, int $timeoutms ]]]]]]]] )
bool close ( void )
bool connect ( string $host [, int $port [, int $timeout ]] )
int decrement ( string $key [, int $value = 1 ] )
bool delete ( string $key [, int $timeout ] )
bool flush ( void )
string get ( string $key [, int &$flags ] )
array getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
int getServerStatus ( string $host [, int $port = 11211 ] )
array getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
string getVersion ( void )
int increment ( string $key [, int $value = 1 ] )
bool pconnect ( string $host [, int $port [, int $timeout ]] )
bool replace ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool set ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool setCompressThreshold ( int $threshold [, float $min_savings ] )
bool setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callback $failure_callback ]]]]] )
}
Table of Contents
■Memcache::add — 增加一个条目到缓存服务器
■Memcache::addServer — 向连接池中添加一个memcache服务器
■Memcache::close — 关闭memcache连接
■Memcache::connect — 打开一个memcached服务端连接
■Memcache::decrement — 减小元素的值
■Memcache::delete — 从服务端删除一个元素
■Memcache::flush — 清洗(删除)已经存储的所有的元素
■Memcache::get — 从服务端检回一个元素
■Memcache::getExtendedStats — 缓存服务器池中所有服务器统计信息
■Memcache::getServerStatus — 用于获取一个服务器的在线/离线状态
■Memcache::getStats — 获取服务器统计信息
■Memcache::getVersion — 返回服务器版本信息
■Memcache::increment — 增加一个元素的值
■Memcache::pconnect — 打开一个到服务器的持久化连接
■Memcache::replace — 替换已经存在的元素的值
■Memcache::set — Store data at the server
■Memcache::setCompressThreshold — 开启大值自动压缩
■Memcache::setServerParams — 运行时修改服务器参数和状态
Memcache::add用法
bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )
⑨ memchache的默认过期时间是多少,我不设这个时间会多少长时间到期呢
不设置,默认永久保存。除非memchache进程退出或掉电。
⑩ PHP可以拿到memcache中的key的过期时间吗
memcached 数据过期机制 lazy expiration
内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间,换句话说,也不能 检测 某个key的过期时间。。
可以使用一种较笨的方法:
definde('MEM_TIME_OUT',1800);
$memKey = "testkey";
$val = 'This is test value';
mem_set($key,$val); //调用
function mem_set($key,$val) {
$memcache -> set($memKey,$val, 0, MEM_TIME_OUT);
//当调用set 的时候顺便加一条记录时间
$memcache -> set('TIME_'.$memKey,time(), 0, MEM_TIME_OUT);
}
function mem_get($key,$is_time = false) {
$memKey = $is_time ? 'TIME_'.$key : $key;
$val = $memcache -> get($key);
if($is_time) {
$val = MEM_TIME_OUT - (time() - $val);
}
return $val;
}
大概意思就是这样。。 期待高手给出更完美,简单的方法。。