memcached是什么

2023-08-01 08:34:00 生活常识 投稿:修夏

memcached是一套分布式的高速缓存系统,缺乏认证以及安全管制,这代表应该将 memcached 服务器放置在防火墙后。这是一套开放源代码软件,以BSD license授权发布。

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 服务。

语法

telnet HOST PORT

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

标签: # Memcached
声明:犀牛文库所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系admin@qq.com