memcached 整理

来源:互联网 发布:mysql添加字段 编辑:程序博客网 时间:2024/05/22 11:46

应用场景

1、非持久化存储:对数据存储要求不高

2、分布式存储:不适合单机使用  (最好和带有数据库机分开,另使用新机)

3、key/value存储:格式简单,不支持List、arrayy数据格式


注意事项:

1、不在单机模式中使用Memcached    //因为memcache会极大的占用内存

2、不要只使用Memecache 保存重要数据

3、定期查看缓存的分布情况和击中情况




PHP中使用Memcached

系统类:addServer,addServers,getStats,getVersion

数据类:add,set,delete,flush,replace,increment,get,

进阶类:setMulti,deleteMulti,getMulti,getResultCode,getResultMessage



**查看服务器状态

eg:

$mem=new Memcached();

$array=array(

         array('127.0.0.1',11211),

        array('127.0.0.2',11211),

         );

$mem->addServers($array);

print_r($mem->getStats()); //查看状态

print_r($mem->getVersion) //查看memcache版本


数据类使用

$m=new Memcached();

$array=array(

       array('127.0.0.1',11211'),

);

$m->addServers($array);

$m->set('key','value',600);     //键名,值,过期时间       设置过期时间为0  是永久的

$m->get('key');     //  取值

$m->delete('key');  //删除

$m->flush();    //清除所有缓存   慎用

 

incremet()方法是为了memcache中int型存在的,可以用于数据的加法

eg:$m->set('num',5);

     $m->increment('num',1);   第二个参数是加多少

   echo $m->get('num');      6

decrement()方法是为了memcache中int型存在的,可以用于数据减法

eg:$m->set('num',5);

     $m->decrement('num',1);   第二个参数是加多少

   echo $m->get('num');      4



setMulti()方法 memecached特有可以一次性添加多条数据

eg:

$m=new Memcached();

$array=array(

       array('127.0.0.1',11211'),

);

$m->addServers($array);

$data=array(

        'key1'=>'value1',

        'key2'=>'value2',

        );

$m->setMulti($data,0);    //1:数组   2:过期时间      设置2条数据


getMulti()方法 memecached特有可以一次性读取多条数据

$result=$m->getMulti(array('key1','key2'));

print_r($result);   返回关联数据

deleteMulti() 方法 memecached特有可以一次性删除多条数据

$m->deleteMulti(array('key1','key2'));


getResultCode() 方法   获取执行结果编码  0为成功 非0失败 //无参数


getResultMessage ()方法  获取执行结果  //无参数

eg:

$m->set('key','heheda');

echo  $m->getResultMessage();  //结果为success


项目中使用memcache

1、即可生成缓存      //应用场景 新闻详情页

2、提前生成缓存     //网站首页

3、永久缓存     //修改频率极低



/******封装自己的Memcache类********/

扩展性      可调性     尽量简便的操作,一个方法多种功能




 






0 0
原创粉丝点击