memcache使用

1. Memcache安装

memcache使用_第1张图片
11.png
memcache使用_第2张图片
12.png
memcache使用_第3张图片
13.png

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

memcache使用_第4张图片
![15.png](http://upload-images.jianshu.io/upload_images/2648722-e5ed41c06a0f2d44.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

输入:quit退出

memcache 管理:

memcache使用_第5张图片
16.png
memcache使用_第6张图片
17.png

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

18.png

基本的memcached客户端命令

memcache使用_第7张图片
19.png
memcache使用_第8张图片
20.png

简单把设置的值遍历出来

21.png

memcache php扩展模块安装

memcache使用_第9张图片
22.png
memcache使用_第10张图片
23.png

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

memcache在php中的使用

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进行数据库数据缓存

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);
memcache使用_第11张图片
24.png

memcache处理会话信息

你可能感兴趣的:(memcache使用)