从数据库类型、数据存储方式、特殊功能讲解Redis和menuached和mysql的区别
•作为同《功能的内存缳存产品,redis和memcached各有什么优势分析竞品rocketmq和kafka和rabbit)
内存管理机制
- Memcached默认使用Slab Allocation机制管理内存,其主要思想是按照预先規定的大小,将分配的
内存分期成特定长度的块以存储相应长度的key-value数捶记彔,以完全解决内存碎片问S.空闲列
表进行利断存储状态 - Redis使用现场申请内存的方式来存储数据,并旦很少使用free-list等方式来优化内存分配,会在一定
程度上存在内存碎片
数据持久化方案
- memcached不支持内存数捶的持久化操作,所有的数裾鄱以in-memory的形式存储+
- redis支持持久化操作,redis提供了两种不同的持久化方法来讲数据存储到硬盘里面.
第一种是rdb形式,一种是aof式Rdb: 将内存进行同步,顾名思义就是内存快照。
Aof: append only if, 存的是命令,类似set del这些命令。
缓存数据过期机制
- 概念: key,设计一个小时之后过期,超过一个小时查数据就会查不到
- Memcached在蒯除失效主铤时也是采用的消极方法,即Memcached内部也不会监视主键ft否失
效,而是在通过Get访问主键时才会检奮其是否已经失效 - Redis定时、定期等多种缓存失效机制.减少内存泄漏
支持的数裾类型
- Memcached支持車一数据类型,[k^v]
- redis支持五种数据类型
网友评论