memcached的变种产品

本文介绍了基于Memcached开发的几种变种产品,包括memcachedb、repcached、memcached_functions_mysql和memcacheQ,阐述了它们各自的功能特点及应用场景。重点介绍了memcachedb的持久化存储和分布式复制能力,repcached的复制功能,memcached_functions_mysql在MySQL中的应用,以及memcacheQ作为消息队列的实现方式。同时,文中还提及了memcacheQ在多机房分布式部署环境中的应用案例。

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

国内外有很多基于Memcached开发的产品,这些产品支持所有Memcached的协议,同时侧重不同的应用场景,可以根据自己的应用需求选择合适的Memcached变种。下面分别介绍几种Memcached的变种产品。

1. memcachedb

memcachedb是新浪网基于Memcached开发的一个开源项目。通过为Memcached增加Berkeley DB的持久化存储机制和异步主辅复制机制,使Memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合需要超高性能读写速度、持久化保存的应用场景,例如,将memcachedb应用于新浪博客的管理。如果对Memcached有持久化需求,可以考虑使用memcachedb。

2. repcached

repcached是日本人开发的基于Memcached的一个patch,实现Memcached的复制功能,它支持多个Memcached之间相互复制,可以解决Memcached的容灾问题。有cache容灾需求的可以尝试使用这一功能。

3. memcached_functions_mysql

这个功能相当于MySQL的UDFs(User Defined Functions),在MySQL中通过触发器更新Memcached。这样可以做到把数据写入MySQL,然后从Memcached获取数据,以减轻数据库的压力,同时减少很多开发的工作量。

关于memcached_functions_mysql的使用和经验会在下一节进行详细介绍。

4. memcacheQ

memcacheQ在Memcached的基础上实现了消息队列。下面以PHP客户端为例介绍memcacheQ实现消息队列的方式。

消息从尾部入栈:memcache_set

消息从头部出栈:memcache_get

memcacheQ最大的优势是:它是基于Memcached开发的,可以通过各种Memcached命令对它进行操作。基于Memcached开发的应用完全不需要做任何修改。

memcacheQ应用于数据库的多机房分布式部署环境,数据库分布在各地,各自写各自的数据库,同时写入本地的memcacheQ,本地的memcacheQ通过调度程序(需要自己开发)把数据从memcacheQ中读取出来,然后写入其他机房的数据库主库,最终使每个机房的数据库数据一致。如图3-14所示为memcacheQ在两个机房的部署情况。

 
图3-14 memcacheQ在数据库的多机房分布式部署环境中的结构
消息队列服务还能使一个有波峰的业务转化成一条直线,这对利用资源非常有好处,只需要准备直线的资源,不需要准备到波峰的资源。Twitter之前通过RabbitMQ来实现消息队列服务,现在改为通过Kestrel来实现消息队列服务,类似的消息队列服务产品还有ActiveMQ和ZeroMQ等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值