Memcache缓存

白俊遥博客

Memcache是一个高性能的分布式的内存对象缓存系统,由LiveLournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内容中,然后从内存中读取,从而大大提高读取速度。这是一套开放源代码软件,以BSD license授权发布。

一、Memcache,memory cahce,内存缓存系统。
                            内存缓存数据库。
                            非关系型数据库。
                            内存里。
              MySQL是一个关系型数据库。

       二、Memcache服务器安装软

       Windows下:
              Memcache服务安装(以管理员身份运行cmd)

            将memcached.exe移动到C盘目录下

            安装:memcached.exe -d install

            卸载:memcached.exe -d uninstall

            停止:memcached.exe -d stop

            启动:memcached.exe -d start

       PHP memcache扩展包。
                 1. 将扩展包拷贝到扩展目录里。
                 2. 修改 php.ini文件,添加扩展选项extension=php_memcache.dll。
                 3. 重启。


             Linux系统下:

        
       三、Memcache的使用。
              在下面介绍。
       四、缓存的原理。
             如果有缓存,就读取缓存,如果没有,就查数据库。

             if(){}else{}

使用:

1.php

<?php
//实例化
$m = new Memcache();
var_dump($m);
//连接数据库。
// $m -> connect('localhost', 11211, 120);
// $m -> addServer('192.168.123.21', 11211, 120);
//请说出5个常用的端口号。
//80 http
//3306 mysql
//11211 memcache
//21  ftp
//22  ssh
//25  mail
//添加一条数据到memcache(永久缓存)
// $m -> add('name', '张总');
// $m -> add('age', 18);
// $m -> add('name', '王总');
//获取一条数据。
// echo $m -> get('name');
// echo $m -> get('age');
// 添加一条数据。set方法用来修改数据。
// $m -> set('name', '张总');
// $m -> set('name', '王总');
// $m -> set('height', '190cm');
// echo $m -> get('name');
// echo $m -> get('height');
// $m -> set('sex', '男', MEMCACHE_COMPRESSED, 10);//设置一个数据生命周期
// echo $m -> get('sex');
//删除一条数据
// $m -> delete('name');
//全部删除。
// $m -> flush();
// 
// $m -> replace('name', '赵总');
// echo $m -> get("name");//
// echo $m -> get("age");
// echo $m -> get("height");//
//递增
// $m -> set('hits', 0);
// $m -> increment('hits', 100000);
// $m -> decrement('hits', 1);
// echo $m -> get('hits');
// $m -> close();//



2.php

<?php
//引入
include './pdo.php';
include './sm.php';
//实例化
$m = new Memcache;
$m -> connect('localhost', 11211, 120);
$id = $_GET\['id'\];
$url = $_SERVER\['REQUEST_URI'\];
$key = md5($url);
if(!$s -> isCached('./2.html', $key))
{
    if(!$m -> get($key))
    {
        $stmt = $pdo -> query('SELECT * FROM news WHERE id = '.$id);
        $data = $stmt -> fetch();
        //将数据存放到 memcache中。
        $m -> set($key, $data, MEMCACHE_COMPRESSED, 10);
        echo '走了mysql';
    }
    $data = $m -> get($key);
    $s -> assign('news', $data);
    echo '走了memcache';
}
echo '走了smarty';
$s -> display('./2.html', $key);


3.php

<?php
$m  = new Memcache;
$m -> connect('localhost', 11211, 120);
$m -> flush();

王如棋博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论