memcached是什么

果冻 问答 2020-08-17 17:57:17 阅读(...)

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 和 端口。

收藏 0个人收藏
走进科技生活方式

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • WIKI是什么

    WIKI是什么

    WIKI 是一种多人协作的写作工具。Wiki 站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。
  • Tengine

    Tengine是什么

    Tengine是由淘宝网发起的Web服务器项目。在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。
  • Reddit

    Reddit是什么

    Reddit是一个娱乐、社交及新闻网站,注册用户可以将文字或链接在网站上发布,使它基本上成为了一个电子布告栏系统。注册用户可以对这些帖子进行投票,结果将被用来进行排名和决定它在首页或子页的位置。
  • MemCache是什么

    MemCache是什么

    memcache是一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。这是一套开放源代码软件,以BSD license授权发布。
  • web2py

    web2py框架是什么

    Web2py是一个用Python编程语言编写的开源Web应用程序框架,允许Web开发人员使用Python对动态Web内容进行编程。 Web2py旨在帮助减少繁琐的Web开发任务。
  • Memcached

    Memcached 是什么

    Memcached 是一个高性能的开源分布式内存对象缓存系统,当前被许多网站使用。 Memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。