什么样的场景下需要同时使用Redis和Memcached?
天蓬老师
天蓬老师 2017-04-22 08:59:06
[Redis讨论组]

如题,见过一些工程同时使用Redis和Memcached,感觉这样很麻烦。
如果不是早期使用Memcached且难以移植到Redis,还有没有其他可能性?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
高洛峰

前厂是这么用的:

  • 实体数据比如用户的信息以protobuf编码存入memcached,一周失效期,作为MySQL的二级缓存
  • 列表数据比如用户的订阅列表放redis,相应数据MySQL也做备份,但redis读不到不会再去MySQL读

总结:

  • redis的数据结构比较丰富,适合存集合、列表或者有序表
  • redis在当时还没有比较完善的分布式方案,所以尽量不存大的实体数据(当然随着用户量的暴增,我们后来用哈希key的方式实现了伪分布式)
  • memcached比较简单,速度也比redis要快,适合存实体数据,但当时遇到的问题是json的包装和解析会成为瓶颈,所以后来我们全部换成了protobuf
天蓬老师

需要除key/value之外的更多数据类型支持时或存储的数据不能被剔除时,使用Redis更合适。而如果只是简单的缓存数据,显然使用memcached更加合适。或者说,相比来说,redis更加适合存储,而memcache更加适合缓存。

巴扎黑

需要频繁查询变化频率不是太高的都是这两位的用点所在

巴扎黑

stackoverflow上面有人问过这个问题《Is memcached a dinosaur in comparison to Redis?》,redis的作者给出了解答(http://stackoverflow.com/questions/2873249/is-memcached-a-dinosaur-in-comparison-to-redis)。整体上说,两者的性能都很好,不必为哪个性能更高而纠结。不过,redis提供的持久化和数据同步机制,这些都是memcached没有的,所以如果你想要持久化,就只能用redis了。另外,memcached足以应付简单的键值存储,不过你要是想用更高级的数据结构,比如hash,list,set,zset之类的,redis提供了这些类型,用着更方便。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号