‘分布式’ 分类的存档
随着项目的发展,我们需要一个高可用性的缓存系统。在对比了memcache和几个流行的key/value数据库之后,我们最终选择了redis。redis绝对是个好东西。用redis之前,推荐看一下下面这几篇文章: 膜拜Redis MemcacheDB, Tokyo Tyrant, Redis performance test Redis几个认识误区 使用php操作redis有好几个选择,个人推荐 Rediska 和 phpredis,其中Rediska是一个纯php实现的类库,如果你需要多台服务器组建一个redis集群的话,推荐用这个,它支持基于CRC32的一致性哈希算法的分布式集群构建,另外也可以自己实现自己的分布式算法。而phpredis则是一个php的c扩展,需要自己编译然后在生产环境中加载,相比Rediska好处就是速度快一点,最终我们选择了phpredis,我们的项目对性能的要求还是比较苛刻一点,暂时也不需要构建一个集群。 另外,我们的项目特点比较特殊,对于value需要频繁修改,所以我自己在自己的机器上面小测了一下,使用的是redis的hash列表数据结构还有phpredis: 测试环境: CPU:model name : Intel(R) Pentium(R) Dual CPU T2370 @ 1.73GHz redis 2.01 phpredis (用来访问redis的扩展) 主要模拟了1K个应用在10W个修改的情况,测试结果: 10W个修改: real 0m11.930s user 0m2.976s sys 0m3.856s CPU:50%~60% MEM:1.5M+ 从这个表现来看,基本上可以支撑1W+/s的并发修改场景,完全可以满足我们的需求了。 <?php $app_cnt = 1000; // 模拟的应用数 $test_cnt = 100000; // 模拟的访问次数 $redis = new [...]
