银川网站开发培训,个人如何做购物网站 关于支付接口,网页布局实例,c 做交易网站memcached是一套分布式的高速缓存系统#xff0c;由LiveJournal的Brad Fitzpatrick开发#xff0c;但被许多网站使用。这是一套开放源代码软件#xff0c;以BSD license授权发布。
memcached缺乏认证以及安全管制#xff0c;这代表应该将memcached服务器放置在防火墙后。 …memcached是一套分布式的高速缓存系统由LiveJournal的Brad Fitzpatrick开发但被许多网站使用。这是一套开放源代码软件以BSD license授权发布。
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不互相通信的分布式 协议
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服务 LiveJournal Wikipedia Flickr Bebo Twitter Typepad Yellowbot Youtube WordPress.com Craigslist Mixi 连接 我们可以通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务。 语法
1telnet HOST PORT
命令中的HOST和PORT为运行 Memcached 服务的 IP 和 端口。 实例
以下实例演示了如何连接到 Memcached 服务并执行简单的 set 和 get 命令。
本实例的 Memcached 服务运行的主机为 127.0.0.1本机 、端口为 11211。