`
yanwenhan
  • 浏览: 115371 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

memcached php应用示例

阅读更多

PHP memcached 应用示例

 

首先 下载 memcached-client.php,在下载了 memcached-client.php 之后,就可以通过这个文件中的类“memcached”对 memcached 服务进行操作了。其实代码调用非常简单,主要会用到的方法有 add()、get()、replace() 和 delete(),方法说明如下:

add ($key, $val, $exp = 0)
往 memcached 中写入对象,$key 是对象的唯一标识符,$val 是写入的对象数据,$exp 为过期时间,单位为秒,默认为不限时间;

get ($key)
从 memcached 中获取对象数据,通过对象的唯一标识符 $key 获取;

replace ($key, $value, $exp=0)
使用 $value 替换 memcached 中标识符为 $key 的对象内容,参数与 add() 方法一样,只有 $key 对象存在的情况下才会起作用;

delete ($key, $time = 0)
删除 memcached 中标识符为 $key 的对象,$time 为可选参数,表示删除之前需要等待多长时间。

下面是一段简单的测试代码,代码中对标识符为 ‘mykey’ 的对象数据进行存取操作:

以下是引用片段:
<?php
//  包含 memcached 类文件
require_once('memcached-client.php');
//  选项设置
$options = array(
    'servers' => array('192.168.1.1:11211′), //memcached 服务的地址、端口,可用多个数组元素表示多个 memcached 服务
    'debug' => true,  //是否打开 debug
    'compress_threshold' => 10240,  //超过多少字节的数据时进行压缩
    'persistant' => false  //是否使用持久连接
    );
//  创建 memcached 对象实例
$mc = new memcached($options);
//  设置此脚本使用的唯一标识符
$key = 'mykey';
//  往 memcached 中写入对象
$mc->add($key, 'some random strings');
$val = $mc->get($key);
echo "n".str_pad('$mc->add() ', 60, '_')."n";
var_dump($val);
//  替换已写入的对象数据值
$mc->replace($key, array('some'=>'haha', 'array'=>'xxx'));
$val = $mc->get($key);
echo "n".str_pad('$mc->replace() ', 60, '_')."n";
var_dump($val);
//  删除 memcached 中的对象
$mc->delete($key);
$val = $mc->get($key);
echo "n".str_pad('$mc->delete() ', 60, '_')."n";
var_dump($val);
?>


是不是很简单,在实际应用中,通常会把数据库查询的结果集保存到 memcached 中,下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担。通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key。下边是一个利用 memcached 来缓存数据库查询结果集的示例(此代码片段紧接上边的示例代码):

以下是引用片段:
<?php
$sql = 'SELECT * FROM users';
$key = md5($sql);   //memcached 对象标识符
if ( !($datas = $mc->get($key)) ) {
    //  在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。
    echo "n".str_pad('Read datas from MySQL.', 60, '_')."n";
    $conn = mysql_connect('localhost', 'test', 'test');
    mysql_select_db('test');
    $result = mysql_query($sql);
    while ($row = mysql_fetch_object($result))
        $datas[] = $row;
    //  将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。
    $mc->add($key, $datas);
} else {
    echo "n".str_pad('Read datas from memcached.', 60, '_')."n";
}
var_dump($datas);
?>

分享到:
评论

相关推荐

    Memcached_程序与php中应用

    里面memcached的程序,应用于php的memcached-client.php,memcached类, 还有一个关于memcached使用的示例文档url

    PHP内存缓存功能memcached示例

    下文简单介绍了memcached类的应用示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 一、memcached 简介 在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只...

    PHP 使用memcached简单示例分享

    在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,...这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速WEB动态应用程序。今天我们就先来简单探讨下memcached的用法

    Linux下安装Memcached服务器和客户端与PHP使用示例

    Memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度和可扩展性。 系统环境:CentOS 7.2 64位 Apache2.4.33 安装libevent依赖库 wget ...

    OOPHP:面向对象的 PHP 计算项目学生示例文件

    OOPHP 讲义克隆此存储库以访问项目中的所有源文件。... 这个盒子包括: - Ubuntu 14.04 - PHP 5.6 - HHVM - Nginx - MySQL - Postgres - Node (With Bower, Grunt, Gulp) - Redis - Memcached - Beanstalkd - Fabirc

    example-webapp

    #Example Web 应用程序 PHP 具有框架的 Web 应用程序示例 ##系统要求 PHP 5.5+ MySQL 5.6+ Linux系统 Memcached,在 ubuntu 系统上轻松安装: sudo apt-get install memcached php5-memcached 安装 从 sql ...

    PHP缓存库phpFastCache.zip

    phpfastcache是一种高性能,分布式对象缓存系统,通用性,可用于加快动态Web应用程序,减轻数据库负载。 phpfastcache把数据库负载到几乎为零,得到更快的页面加载时间的用户,更好的资源利用率。它是简单而强大的...

    laravel-solarium-vue-opensolr-search:使用Laravel Solarium Vue(Mixins)和Opensolr的示例搜索引擎UI

    laravel-solarium-vue-opensolr-搜索使用Laravel Solarium Vue和Opensolr的快速而肮脏的示例搜索引擎这是一个教程项目,内容涉及如何使用一些嵌入式技术使用solr创建您的第一个laravel应用程序。 我还在Laravel 6中...

    apc:启用替代 PHP 缓存

    一个示例配置可以是在 APC 中缓存“cache”和“cache_bootstrap”,在 Memcached 中缓存“cache_field”和“cache_menu”,以及在数据库中缓存“cache_filter”。 安装 步骤1 像任何其他背景模块一样安装。 有关更...

    实战Nginx.取代Apache的高性能Web服务器

    3.1 Nginx的完整配置示例 3.2 Nginx的虚拟主机配置 3.3 Nginx的日志文件配置与切割 3.4 Nginx的压缩输出配置 .3.5 Nginx的自动列目录配置 3.6 Nginx的浏览器本地缓存设置 第4章 Nginx与PHP(FastCGI)的安装...

    实战nginx-张宴

    3.1 Nginx的完整配置示例 3.2 Nginx的虚拟主机配置 3.3 Nginx的日志文件配置与切割 3.4 Nginx的压缩输出配置 3.5 Nginx的自动列目录配置 3.6 Nginx的浏览器本地缓存设置 第4章 Nginx与PHP( FastCGI) 的安装、 配置...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    3.1 Nginx的完整配置示例 3.2 Nginx的虚拟主机配置 3.3 Nginx的日志文件配置与切割 3.4 Nginx的压缩输出配置 .3.5 Nginx的自动列目录配置 3.6 Nginx的浏览器本地缓存设置 第4章 Nginx与PHP(FastCGI)的安装、配置与...

    caching:with具有易于使用的API和许多缓存后端的缓存库

    高速缓存通过存储数据(一旦很难检索到)以供将来使用来加速您的应用程序。 可以在上找到文档。 您喜欢Nette Caching吗? 您是否期待这些新功能? 谢谢! 安装 composer require nette/caching 它要求PHP版本8.0。...

    java开源包1

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包11

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包2

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包3

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包6

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

    java开源包5

    jFastCGI 是一个可以让Tomcat 之类的Servlet容器支持运行PHP和其它fastcgi应用程序,将Servlet容器充当成一个FastCGI 的网关。 Java 绘图框架 JGraphEd JGraphEd 是一个 Java 的图形编辑应用和绘图框架。 Java ...

Global site tag (gtag.js) - Google Analytics