全部博文(921)
分类: 数据库开发技术
2011-03-26 16:32:18
随着项目的发展,我们需要一个高可用性的缓存系统。在对比了memcache和几个流行的key/value数据库之后,我们最终选择了。redis绝对是个好东西。用redis之前,推荐看一下下面这几篇文章:
使用php操作redis有好几个选择,个人推荐 和 ,其中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的并发修改场景,完全可以满足我们的需求了。