PHP之Memcached和ttserver

本文介绍了 Memcached 的基本概念及其在分布式环境中的应用。通过实例演示如何配置多进程来实现分布式缓存,并探讨了 Memcached 与 TokyoTyrant 的结合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前只是会用memcached做防刷控制,最近看了一些博客文章和公司一些项目对其了解加深了一步,写个笔记。

 

PHP提供的有memcache和memcached,至于他们的区别,建议看PHP模块:Memcached > Memcache这篇文章就有明了了。

 

什么是Memcached?
Memcached是国外社区网站 LiveJournal 的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

 

 

我们知道PHP的memcached中有Memcached::addServers()向服务器池中增加servers参数指定的服务器。Memcache 客户端使用 addServer 服务器池时,是根据“crc32(key) % current_server_num”哈希算法将 key 哈希到不同的服务器的,PHP、C 和 python 的客户端都是如此的算法。Memcache 客户端的 addserver 具有故障转移机制,当 addserver 了2台 Memcached 服务器,而其中1台宕机了,那么 current_server_num 会由原先的2变成1。

 

下面我们就来测试一下分布式,你也许说我没有那么多机子,可以参照memcached的分布式应用

 

 

PHP与Memcache分布式

在一台或者多台机器启用一个或者多个进程,这里是在一台机器启用两个进程,使用两个端口:
# /usr/local/bin/memcached -p 11211 -d -u nobody
# /usr/local/bin/memcached -p 11212 -d -u nobody

PHP 测试代码
<?php
//连接Memcache
$mem = new Memcache;
$mem->addServer("localhost", 11211);
$mem->addServer("localhost", 11212);

$mem->add('key1', 1);
$mem->add('key2', 2);
$mem->add('key3', 3);
$mem->add('key4', 4);
 

然后在我们memcache pecl中的memcache.php来看着写值得分布,你就可以看出端倪了。(prc中也apc.php,以前不知道还想自己写一个的)

 

 

有关ttserver的,请参考

 

 

Tokyocabinet/Tokyotyrant文档大合集

任何Memcached客户端均可直接调用tokyotyrant。

 

这里让我迷路了,我们常说的memcached是memcached.org实现的,Tokyo Tyrant 加上 Tokyo Cabinet,构成了一款支持高并发的分布式持久存储系统,对任何原有Memcached客户端来讲,可以将Tokyo Tyrant看成是一个Memcached,但是,它的数据是可以持久存储的。这一点,跟新浪的Memcachedb性质一样。这里的意思ttserver支持memcached协议,我只需要启动ttserver就可以通过使用php的memcache来使用(只需启动ttserver即可,不用启动memcache),这是我粗俗的理解。

 

 

想要深入的理解请参考http://www.google.com/cse/home?cx=016088334967758658265:ej58ey2f_s0这个自定义google引擎中有关memcache的文章。还有一些别人翻译文档。

 

准备写一个类似apc.php的ttserver的监控...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值