memcached是什么?

来源:TechTMT.Com  作者:整理  日期:2022-02-25 13:52:52

memcached 是一套分布式的高速缓存系统,由 LiveJournal 的 Brad Fitzpatrick 开发,但被许多网站使用。这是一套开放源代码软件,以 BSD license 授权发布。

memcached

memcached 缺乏认证以及安全管制,这代表应该将 memcached 服务器放置在防火墙后。

memcached 的 API 使用三十二比特的循环冗余校验(CRC-32)计算键值后,将数据分散在不同的机器上。当表格满了以后,接下来新增的数据会以 LRU 机制替换掉。由于 memcached 通常只是当作缓存系统使用,所以使用 memcached 的应用程序在写回较慢的系统时(像是后端的数据库)需要额外的代码更新 memcached 内的数据。

功能

memcached是一套分布式的快取系统,与 redis 相似,当初是 Danga Interactive 为了 LiveJournal 所发展的,但被许多软件(如 MediaWiki)所使用。这是一套开放源代码软件,以 BSD license 授权协议发布。

memcached 缺乏认证以及安全管制,这代表应该将 memcached 服务器放置在防火墙后。

memcached 的 API 使用 32 位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以 LRU 机制替换掉。由于 memcached 通常只是当作快取系统使用,所以使用 memcached 的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程式码更新 memcached 内的资料

memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件。已成为 mixi、hatena、Facebook、Vox、LiveJournal 等众多服务中提高 Web 应用扩展性的重要因素。许多 Web 应用都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现 RDBMS 的负担加重、数据库响应恶化、网站显示延迟等重大影响。

这时就该 memcached 大显身手了。memcached 是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web 应用的速度、提高可扩展性。

Memcached的守护进程(daemon )是用 C 写的,但是客户端可以用任何语言来编写,并通过 memcached 协议与守护进程通信。但是它并不提供冗余(例如,复制其 hashmap 条目);当某个服务器 S 停止运行或崩溃了,所有存放在 S 上的键/值对都将丢失。

Memcached 由 Danga Interactive 开发,其最新版本发布于 2010 年,作者为 Anatoly Vorobey 和 Brad Fitzpatrick。用于提升 LiveJournal . com 访问速度的。LJ 每秒动态页面访问量几千次,用户 700 万。Memcached 将数据库负载大幅度降低,更好的分配资源,更快速访问。

特征

memcached 作为高速运行的分布式缓存服务器,具有以下的特点。

· 协议简单

· 基于 libevent 的事件处理

· 内置内存存储方式

· memcached 不互相通信的分布式

功能

一个用 PHP 编写的可视化的 MemCached 管理系统

MemAdmin 是一款可视化的 Memcached 管理与监控工具,使用 PHP 开发,体积小,操作简单。

主要功能:

服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES 实时刷新

服务器性能监控:GET、DELETE、INCR、DECR、CAS 等常用操作命中率实时监控

支持数据遍历,方便对存储内容进行监视

支持条件查询,筛选出满足条件的 KEY 或 VALUE

数组、JSON 等序列化字符反序列显示

兼容 memcache 协议的其他服务,如 Tokyo Tyrant (遍历功能除外)

支持服务器连接池,多服务器管理切换方便简洁

使用技巧

许多语言都实现了连接 memcached 的客户端,其中以 Perl、PHP 为主。仅仅 memcached 网站上列出

的语言就有

· Perl

· PHP

· Python

· Ruby

· C#

· C/C

· Lua

等等。

如何使用 memcached-Server 端

在服务端运行:

# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

这将会启动一个占用 2G 内存的进程,并打开 11211 端口用于接收请求。由于 32 位系统只能处理 4G 内存的寻址,所以在大于 4G 内存使用 PAE 的 32 位服务器上可以运行 2-3 个进程,并在不同端口进行监听。

如何使用 memcached-Client 端

在应用端包含一个用于描述 Client 的 Class 后,就可以直接使用,非常简单。

PHP Example:

$options[“servers”] = array(“192.168.1.41:11211”, “192.168.1.42:11212”);

$options[“debug”] = false;

$memc = new MemCachedClient($options);

$myarr = array(“one”,”two”, 3);

$memc->set(“key_one”, $myarr);

$val = $memc->get(“key_one”);

print $val[0].”\n”; // prints ‘one‘

print $val.”\n”; // prints ‘two‘

print $val.”\n”; // prints 3

CentOS 下的安装

安装yum -y install memcached

设置为开机启动chkconfig –level 2345 memcached on

启动和停止/etc/init.d/memcached start|stop

补充:如果安装缺少其他支持,可以:

yum groupinstall “Development Tools”

Memcached 用户

以下站点都使用到了 Memcached 服务:

LiveJournal

Wikipedia

Flickr

Bebo

Twitter

Typepad

Yellowbot

Youtube

WordPress.com

Craigslist

Mixi

Memcached 连接

我们可以通过 telnet 命令并指定主机 ip 和端口来连接 Memcached 服务。

语法

telnetHOSTPORT

命令中的HOSTPORT为运行 Memcached 服务的 IP 和 端口。

分类:资讯
标签:是什么
编辑:tmt
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。文章版权归原作者所有,内容不代表本站立场!
免责声明: 阁下应知本站所提供的内容不能做为操作依据。本站作为信息内容发布平台,不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考! 如文中内容影响到您的合法权益(含文章中文字、图片等),请及时联系本站,我们会及时删除处理。