memcache使用

1. Memcache安装

11.png
12.png
13.png

检验memcached是否下载完,可以在[控制面板]->[管理工具]->[服务]中查看到memcached服务
终端输入 Stats,显示如下:

![15.png](http://upload-images.jianshu.io/upload_images/2648722-e5ed41c06a0f2d44.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

输入:quit退出

memcache 管理:

16.png
17.png

linux常用组合来修改相关配置(在windows下可能不能用):

18.png

基本的memcached客户端命令

19.png
20.png

简单把设置的值遍历出来

21.png

memcache php扩展模块安装

22.png
23.png

windows点击下载
将扩展文件放到对应版本php的模块文件(ext)中
打开php.ini配置文件,将extension=memcache.dll前的分号去掉,重启apache就可以了

memcache在php中的使用

<?php
//创建memcache对象
$mem=new Memcache;
//连接memcache服务器
$mem->connect('localhost',11211);
//操作
//add添加
class test{
    public $a=1;
    public $b=2;
    public $c=3;
    
}
$mem->add('one','this is memcache test!',
MEMCACHE_COMPRESSED,time()+60*60*24*31);
$mem->add('two',array("111","222","333"),MEMCACHE_COMPRESSED,time()+60*60*24*31);
$mem->add('three',new test(),MEMCACHE_COMPRESSED,time()+60*60*24*31);
//修改操作
//把上面add换成set,没有键值则是添加
$mem->set('one','this is set!',
MEMCACHE_COMPRESSED,time()+60*60*24*31);
//取值get
$mem->get('one');
var_dump($mem->get('three'));
//删除delete
$mem->delete('one');
//清除所有
$mem->flush();

//关闭memcache连接
$mem->close();

利用memcache进行数据库数据缓存

<?php
//创建memcache对象
$mem= new Memcache;
//连接memcache服务器
$mem->connect('localhost',11211);
//数据库的连接和操作
/*
*判断如果内存中有数据直接取出,没有的话从数据库中查询;
*/
$sql="select id,name,age from test order by id";
//设置键为md5($sql),这样服务器每次使用同样的sql语句就会走内存
$key=MD5($sql);
//直接从内存memcache要数据
$data=$mem->get($key);
//判断
if(empty($data)){
    try{
        $pdo= new PDO('mysql:host=localhost;dbname=test','root','910420');
    }catch(PDOException $e){
        echo "数据库连接失败:".$e->getMessage();
    }
    
    //获取数据,执行语句
    $stmt=$pdo->prepare($sql);
    $stmt->execute();
    //获取所有数据
    $data=$stmt->fetchAll(PDO::FETCH_ASSOC);
    //把数据插入到memcache内存中
    $mem->set($key,$data,MEMCACHE_COMPRESSED,5);
    var_dump($data);
}
//关闭数据库
$mem->close();

设置分布式的memcache存取

分布式的存取只需要把上述代码的连接connect换成多台服务器就可以了,连接代码如下:

$mem->addServer('192.168.1.137',11211);
24.png

memcache处理会话信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、memcache的概念? Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨...
    桖辶殇阅读 2,281评论 2 12
  • 一、MemCache简介 session MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存...
    李伟铭MIng阅读 3,888评论 2 13
  • (一):基础概念 memcache是什么? Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web...
    楚江云阅读 1,232评论 0 5
  • 2017年9月21日 星期四 天气晴 我起床后,刚去做饭,小金同学就从自己的房间出来了,去我们床上...
    金腾岳妈妈阅读 241评论 0 1
  • 多做事,少抱怨,抱怨解决不了任何问题,多站在他人的立场去想问题,就不会有那么多的抱怨,才能更美好。
    闫玉莲阅读 101评论 0 0