欢迎来到 常识词典网 , 一个专业的常识知识学习网站!

[ Ctrl + D 键 ]收藏本站

您所在的位置:首页 > 教育学习 > 问答

问答

Redis 的极限压力为啥大于 Memcac-e?

分类: 问答 常识词典 编辑 : 常识 发布 : 08-22

阅读 :286

Redis 的极限压力为啥大于 Memcac-e?4 个答案

答案 1:

新浪微博架构师Tim Yang对此有写过博客:Redis不可能比Memcac-e快很多开发者都认为Redis不可能比Memcac-ed快,Memcac-ed完全基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcac-ed快。但是测试结果基本是Redis占绝对优势。一直在思考这个原因,目前想到的原因有这几方面。

Libevent。和Memcac-ed不同,Redis并没有选择libevent。Libevent为了迎合通用性造成代码庞大(目前Redis代码还不到libevent的1/3)及牺牲了在特定平台的不少性能。Redis用libevent中两个文件修改实现了自己的epoll event loop(4)。业界不少开发者也建议Redis使用另外一个libevent高性能替代libev,但是作者还是坚持Redis应该小巧并去依赖的思路。一个印象深刻的细节是编译Redis之前并不需要执行./configure。

CAS问题。CAS是Memcac-ed中比较方便的一种防止竞争修改资源的方法。CAS实现需要为每个cac-e key设置一个隐藏的cas token,cas相当value版本号,每次set会token需要递增,因此带来CPU和内存的双重开销,虽然这些开销很小,但是到单机10G+ cac-e以及QPS上万之后这些开销就会给双方相对带来一些细微性能差别(5)。

timyang.net/data...

答案 2:

最关键的还是redis自己实现了一套简单的网络库吧..memcac-ed是被libevent给拖累的.性能上不去是卡在libevent上。cas有影响,但是影响实在有限。

答案 3:

个人测试过,单从get性能还是memcac-e最快的,redis的set比memcac-e快,还有那些memcac-e没有的复杂数据结构类型,这些没法比较了,所以redis有复杂的应用场景,没法单纯跟memcac-e进行负载方面的比较。

答案 4:

这个是我个人的测试结果,可以参考一下 blog.sina.cn/s/blog_4...

下一篇:有没有好点的搜图网站??类似全景华盖那种的。 下一篇 【方向键 ( → )下一篇】

上一篇:用视高的产品自建-会议服务器,运营中遇到的最大问题是什么? 上一篇 【方向键 ( ← )上一篇】