memcache知识点梳理

1.通过Memcached的监听端口进行管理

2:memcache.php ()

3: 利用Nagios监控Memcached

4:利用cacti监控Memcached

当有多台Memcached时,可以考虑使用cacti和Nagios来配置统一的监控界面,这有利于后期对Memcached进行运维。而memcache.php适合单台机器来使用。

5:MemAdmin是一款可视化的Memcached管理与监控工具;

Memcached变种产品介绍

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

1.memcachedb

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

2.repcached

repcached是日本人开发的基于Memcached的一个patch,实现Memcached的复制功能,它支持多个Memcached之间相互复制,可以解决Memcachcd的容灾问题。有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在两个机房的部署情况。

Memcached分布式内存对象缓存系统的性能监控

图3-14 memcacheQ在数据库的多机房分布式部署环境中的结构

消息队列服务还能使一个有波峰的业务转化成一条直线,这对利用资源非常有好处,只需要准备直线的资源,不需要准备到波峰的资源。Twitter之前通过 RabbitMQ来实现消息队列服务,现在改为通过Kestrel来实现消息队列服务,类似的消息队列服务产品还有ActiveMQ和ZeroMQ等。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwywfg.html