文档首页 > > 产品介绍>

Redis与Memcached差异

Redis与Memcached差异

分享
更新时间:2021/01/08 GMT+08:00

Redis和Memcached都是非常受欢迎的开源内存数据库,相对关系型数据库,Redis和Memcached使用都简单,且具备高性能。

同为Key-Value数据库,我们该如何选择?

Memcached适用于数据结构模型简单的场景。Redis适用于数据结构复杂、需要持久化存储数据、存储大key的场景。

具体细节比较,请参考下表。

表1 Redis与Memcached的对比概览

对比项

Redis

Memcached

延时

内存数据库,亚毫秒级延时。

内存数据库,亚毫秒级延时。

易用性

语法简单,易用性强。

语法简单,易用性强。

分布式存储

支持集群方式水平扩展。

支持。

多语言客户端

支持Java、C、Python等三十几种语言的客户端连接。

支持Java、C、Python等十几种语言的客户端连接。

线程/进程

单核单线程。

单线程通信,避免不必要的上下文切换与竞争。

采用非阻塞IO(IO多路复用),减少多客户端连接时的资源消耗。

支持多线程,可扩展。

可通过增加CPU数量,提升Memcached性能。

在key的value较大的场景中,性能优势较明显。

持久化存储

支持。

可将每一次写入操作(数据的增加、删除、修改)记录到磁盘文件(AOF文件)中。

支持。

说明:

开源Memcached不支持持久化存储,华为云Memcached支持持久化存储。

数据结构

支持哈希、列表、集合、有序集合等复杂的数据结构。有更多的应用场景

支持简单的字符串。

Lua脚本支持

支持。

不支持。

快照备份

支持。

快照定期产生,因此不能保证数据100%不丢失。

Redis会fork一个子进程用于生成快照,当数据较多时,可能产生Redis服务短暂中断。

不支持。

数据迁移

支持。

可通过RDB快照恢复,或者AOF文件回放的方式,将数据备份并迁移到新的Redis实例上。

不支持。

Key的Value限制

Key的值最大可以有1G。

1M

多数据库

Redis单机和主备支持多个数据库,默认256个DB。

Proxy集群和Cluster集群只支持一个数据库,为DB0。

不支持

由以上对比可知,Redis与Memcached都具有简单易用,性能优越的特点。但在数据结构存储、持久化、备份与迁移、脚本支持等方面有所差异,建议您结合实际应用场景,选择最合适的缓存引擎。

Memcached比较合适小型静态数据的缓存场景,只需要直接读取,不做进一步运算和处理,如html代码片段。

Redis有丰富的数据结构,应用场景更为广泛。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问
{{site}}{{lan}}
{{site}}{{language}}