Redis与Memcached简单对比(转)
2024-08-24 20:58:18
很多开发者都认为Redis不可能比Memcached快,Memcached完全基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcached快。但是测试结果基本是Redis占绝对优势。一直在思考这个原因,目前想到的原因有这几方面。
- Libevent。和Memcached不同,Redis并没有选择libevent。Libevent为了迎合通用性造成代码庞大(目前Redis代码还不到libevent的1/3)及牺牲了在特定平台的不少性能。Redis用libevent中两个文件修改实现了自己的epoll event loop(4)。业界不少开发者也建议Redis使用另外一个libevent高性能替代libev,但是作者还是坚持Redis应该小巧并去依赖的思路。一个印象深刻的细节是编译Redis之前并不需要执行./configure。
- CAS问题。CAS是Memcached中比较方便的一种防止竞争修改资源的方法。CAS实现需要为每个cache key设置一个隐藏的cas token,cas相当value版本号,每次set会token需要递增,因此带来CPU和内存的双重开销,虽然这些开销很小,但是到单机10G+ cache以及QPS上万之后这些开销就会给双方相对带来一些细微性能差别(5)。
最新文章
- WPS for Linux(ubuntu)字体配置(字体缺失解决办法)
- cocoaPod的使用
- jquery 选择器 -高级使用 新的 心得
- Tempter of the Bone---hdu1010(dfs+剪枝)
- javascript常见错误
- Android 布局之DrawLayout
- phpcms v9 get调用标签整理
- PJSUA2开发文档--第三章 PJSUA2高级API
- 20165306 Exp4 恶意代码分析
- Docker 创建 mongo 容器
- 用GDB调试程序(七)
- 一名网工对Linux运维的一次经历
- 微信小程序开发工具
- vs2015的visual assist X options安装过程
- Linux基础命令---tune2fs
- php数组转化为字符串
- 安装配置博客WordPress
- 6.9-JDBC
- 160517、nginx负载均衡详解
- UVA10954:Add All(优先队列)