memcache使用

1. Memcache安装

《memcache使用》 11.png
《memcache使用》 12.png
《memcache使用》 13.png

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

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

输入:quit退出

memcache 管理:

《memcache使用》 16.png
《memcache使用》 17.png

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

《memcache使用》 18.png

基本的memcached客户端命令

《memcache使用》 19.png
《memcache使用》 20.png

简单把设置的值遍历出来

《memcache使用》 21.png

memcache php扩展模块安装

《memcache使用》 22.png
《memcache使用》 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);

《memcache使用》 24.png

memcache处理会话信息

    原文作者:呦丶耍脾气
    原文地址: https://www.jianshu.com/p/1268b65ae4e6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞