memcached完全剖析1. memcached的基础
翻译一篇技术评论社的文章,是讲memcached的连载。fcicq同学说这个东西很有用,希望大家喜欢。
发表日:2008/7/2?
作者:长野雅广(Masahiro Nagano)?
原文链接:http://gihyo.jp/dev/feature/01/memcached/0001
我是mixi株式会社开发部系统运营组的长野。 日常负责程序的运营。从今天开始,将分几次针对最近在Web应用的可扩展性领域 的热门话题memcached,与我公司开发部研究开发组的前坂一起, 说明其内部结构和使用。
图1 一般情况下memcached的用途
memcached的特征memcached作为高速运行的分布式缓存服务器,具有以下的特点。
图2 memcached的分布式
接下来简单介绍一下memcached的使用方法。
安装memcachedmemcached的安装比较简单,这里稍加说明。
memcached支持许多平台。
- 与add和replace不同,无论何时都保存获取数据
获取数据可以使用get和get_multi方法。
my $val = $memcached->get('键');my $val = $memcached->get_multi('键1', '键2', '键3', '键4', '键5');一次取得多条数据时使用get_multi。get_multi可以非同步地同时取得多个键值, 其速度要比循环调用get快数十倍。
删除数据删除数据使用delete方法,不过它有个独特的功能。
$memcached->delete('键', '阻塞时间(秒)');删除第一个参数指定的键的数据。第二个参数指定一个时间值,可以禁止使用同样的键保存新数据。 此功能可以用于防止缓存数据的不完整。但是要注意,set函数忽视该阻塞,照常保存数据
增一和减一操作可以将memcached上特定的键值作为计数器使用。
my $ret = $memcached->incr('键');$memcached->add('键', 0) unless defined $ret;增一和减一是原子操作,但未设置初始值时,不会自动赋成0。因此, 应当进行错误检查,必要时加入初始化操作。而且,服务器端也不会对 超过2?32时的行为进行检查。
总结这次简单介绍了memcached,以及它的安装方法、Perl客户端Cache::Memcached的用法。 只要知道,memcached的使用方法十分简单就足够了。
下次由前坂来说明memcached的内部结构。了解memcached的内部构造, 就能知道如何使用memcached才能使Web应用的速度更上一层楼。 欢迎继续阅读下一章。