关于Redis和Memcache在应用中,都可以实现缓存的功能,但是,具体使用情况需要根据具体业务场景,尤其是对缓存数据有特性要求时,需要选择对应的缓存机制。
共同点:
都是基于内存的数据库,可用作缓存机制
区别:
1、关于数据类型:Memcache只支持简单的Key/Value数据结构;Redis支持的数据结构相对较多,如String、List、Set、zSet等。
2、是否支持持久化数据:Memcache数据存放在内存中,无法持久化,在重启后数据丢失;Redis可实现数据持久化到硬盘(RDB)或记录操作日志(AOF),在重启后可以实现数据恢复功能。
3、关于对集群的支持:Memcache通过Hash算法,在客户端做集群支持;Redis淘工作Reolication进行数据复制,支持master-slave机制,实现的事基于服务端的集群支持。
4、关于性能:由于写入都是直接到内存,差别不会太大,但是在读操作上,如果数据量相对较大,Memcache相对可能更强(只是个人猜测,未进行验证测试)。
5、线程问题:Memcache是多线程模型,主线程和work线程分开,前者负责监听请求,并将具体的执行处理交给work线程;Redis单线程,串行执行,并发情况下数据一致性有保障。
在项目具体应用中,前期尝试过Memcache实现缓存,但后期还是决定选用Redis,原因是项目背景是微服务模式,Redis实现session共享以及基础数据缓存相对更加有优势。
原文地址:https://www.cnblogs.com/funnyboy0128/p/10565301.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。