首页 > 软件列表 > memcached
memcached

memcached

软件语言:
软件授权:免费
适用系统:Windows
创建时间:2020-12-15
软件厂商/开发者信息: -

软件简介

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 不互相通信的分布式

协议

memcached 的服务器客户端通信并不使用复杂的 XML 等格式,而使用简单的基于文本行的协议。

因此,通过 telnet 也能在 memcached 上保存数据、取得数据。下面是例子。

$ telnet localhost 11211

Trying 127.0.0.1

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

set foo 0 0 3(保存命令)

bar(数据)

STORED(结果)

get foo(取得命令)

VALUE foo 0 3(数据)

bar(数据)

事件处理

libevent 是个程序库,它将 Linux 的 epoll、BSD 类操作系统的 kqueue 等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥 O(1) 的性能。memcached 使用这个 libevent 库,因此能在 Linux、BSD、Solaris 等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考 Dan Kegel 的 The C10K Problem。

存储方式

为了提高性能,memcached 中保存的数据都存储在 memcached 内置的内存存储空间中。由于数据仅存在于内存中,因此重启 memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于 LRU(Least Recently Used) 算法自动删除不使用的缓存。memcached 本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

通信分布式

memcached 尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个 memcached 不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。本文也将介绍 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[1]."\n"; // prints 'two‘

print $val[2]."\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 服务。

语法

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

实例

以下实例演示了如何连接到 Memcached 服务并执行简单的 set 和 get 命令。

本实例的 Memcached 服务运行的主机为 127.0.0.1(本机) 、端口为 11211。

版本发布

2012 年 02 月 03 日,Memcached 1.4.13 发布。

2012 年 08 月 02 日,Memcached 1.4.14 发布。

2012 年 09 月 05 日,Memcached 1.4.15 发布。

2015 年 04 月 25 日,Memcached 1.4.23 发布。

2020 年 3 月,Memcached 1.6 发布。

版本列表

  • Memcached v1.5.20 官方版

    Memcached v1.5.20 官方版

    Memcached是一个高性能的分布式内存对象缓存系统,Memcached通过在内存 ...

    软件大小:598.0 KB 更新时间:2021-03-02
    详情
  • memcached v1.4.13 官方版

    memcached v1.4.13 官方版

    Memcached是一个强大的高性能的分布式内存对象缓存系统​,用于动态Web应用以 ...

    软件大小:201.8 KB 更新时间:2016-05-11
    详情