文章分类 -  Memcached

php memcache与php memcached的区别以及遇到的问题
摘要:PHP有两个memcache客户端:php memcache和php memcached。php memcache独立用php实现,是老客户端,从我们实践中已发现有多个问题,而且功能少,属性也可设置的少;php memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为p... 阅读全文

posted @ 2014-10-29 17:59 阿Q新传 阅读(99) 评论(0) 推荐(0)

NoSQL反模式 - 文档数据库篇
摘要:看到一篇文章挺不错的,对比介绍Mysql、MongoDB、Redis、HBase的,转载一下,原文网址:http://www.yankay.com/nosql-anti-pattern-document/我们设计关系数据库Schema的都有一套完整的方案,而NoSQL却没有这些。半年前笔者读了本《SQL反模式》的书,觉得非常好。就开始留意,对于NoSQL是否也有反模式?好的反模式可以在我们设计Schema告诉哪里是陷阱和悬崖。NoSQL宣传的时候往往宣称是SchemaLess的,这会让人误解其不需要设计Schema。但如果不意识到设计Schema的必要,陷阱就在一直在黑暗中等着我们。这篇文章就 阅读全文

posted @ 2013-07-01 19:24 阿Q新传 阅读(117) 评论(0) 推荐(0)

Memcache的最佳实践方案
摘要:基本问题1、memcached的基本设置1)启动Memcache的服务器端# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcache的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,-p是设置Memcache监听的端口,我这里设置了12000,最好是10 阅读全文

posted @ 2013-06-30 11:09 阿Q新传 阅读(76) 评论(0) 推荐(0)

Memcache存储大数据的问题
摘要:Memcached存储单个item最大数据是在1MB内,如果数据超过1M,存取set和get是都是返回false,而且引起性能的问题。我们之前对排行榜的数据进行缓存,由于排行榜在我们所有sql select查询里面占了30%,而且我们排行榜每小时更新一次,所以必须对数据做缓存。为了清除缓存方便,把所有的用户的数据放在同一key中,由于memcached:set的时候没有压缩数据。在测试服测试的时候,没发现问题,当上线的时候,结果发现,在线人数刚刚490人的时候,服务器load average飘到7.9。然后我们去掉缓存,一下子就下降到0.59。所以Memcahce不适合缓存大数据,超过1MB的 阅读全文

posted @ 2013-06-30 11:07 阿Q新传 阅读(91) 评论(0) 推荐(0)

memcached维护及其数据遍历实现
摘要:memcache的stats命令包括:1. stats2. stats reset3. stats malloc4. stats maps5. stats sizes6. stats slabs7. stats items8. stats cachedump slab_id limit_num9. stats detail [on|off|dump]说说其实现遍历的原理:telnet到192.168.15.225(局域网测试机器)的memcache服务器;执行stats items命令,可以看到出现 很多的items行。执行stats cachedump 3 0命令。这里的3表示上面图中ite 阅读全文

posted @ 2013-06-30 11:04 阿Q新传 阅读(197) 评论(0) 推荐(0)

遍历memcache中已缓存的key
摘要:最近需要做一个缓存管理的功能。其中有一个需要模糊匹配memcached的key然后进行删除匹配上的key对应的数据。难点在于memcache 没有提供模糊匹配key删除缓存的功能,也没有提供遍历memcache key的功能。在网上search了下,点击10个连接有9个都是一篇文章的copy。网上最流行的方法发现key不能正确的获得。baidu google 全用上了就是没有解决。。。最后还是抱着试试的心态,终于把问题给解决了。废话少说。说说,我实现的代码:遍历memcache的可以需要有一下几个步骤:1、通过使用memcache 内置方法Memcache::getExtendedStats, 阅读全文

posted @ 2013-06-30 11:02 阿Q新传 阅读(116) 评论(0) 推荐(0)

Memcached常规应用与分布式部署方案
摘要:下面天涯[PHPHA.COM]介绍下Memcached的最常规的应用及分布式部署方案。相关内容参考了凹凸曼写的Memcached使用与实践章节。至于Memcached的安装及基本使用,这里不做介绍,有需要可以借助Google或Baidu。1、Memcached常规应用使用Memcached缓存MySQL查询结果减轻数据库压力,下面直接上代码,后面做简单说明。conncet('127.0.0.1',11211);$sql = sprintf("SELECT * FROM users WHERE uid = %d", $_GET['uid']); 阅读全文

posted @ 2013-06-30 10:58 阿Q新传 阅读(94) 评论(0) 推荐(0)