Redis和Memcached的主要区别如下表格所示 -
比较项 | Memcached | Redis |
---|---|---|
定义 | Memcached 是内存中键值存储,最初用于缓存目的。 | Redis 是内存数据结构存储,用作数据库、缓存和消息代理。 |
说明/描述 | Memcached 简单、设计简单但功能强大。其简单的设计促进了快速部署,易于夸大,并解决了与大数据缓存相关的许多问题。它具有内置的 API,可提供分布在多台机器上的非常大的哈希表,并使用内部内存管理来提供更高的效率。 Memcached 仅支持适合存储只读数据的 String 数据类型。 Memcached 是一个易失的内存键值源。它是多线程的,主要用于缓存对象。 | Redis 是一个开源的内存数据结构存储,它也可以用作数据库和缓存。它支持几乎所有类型的数据结构,例如字符串、哈希、列表、集合、带范围查询的排序集合、位图、超日志和通过半径查询的地理空间索引。 Redis 也可用于用作发布/订阅的消息传递系统。 |
主数据库模型 | Memcached 遵循键值存储数据库模型。 | Redis 也遵循 Key-value 存储数据库模型。 |
开发者 | 由 Memcached 开发由 Danga Interactive 开发。 | Redis 由 Salvatore Sanfilippo 开发。 |
初始版本 | Memcached 最初于 2003 年发布。 | Redis 最初于 2009 年发布。 |
许可证 | Memcached 是免费和开源的。 | Redis 也是免费和开源的。 |
基于云 | 否 | 否 |
实现语言 | Memcached 是用 C 语言实现的。 | Redis 也是用 C 语言实现的。 |
服务器操作系统 | FreeBSD Linux OS X Unix Windows | BSD Linux OS X Windows |
支持的编程语言 | .Net、C、C++、ColdFusion、Erlang、Java、Lisp、Lua、OCaml、Perl、PHP、Python、Ruby | C、C#、C++、Clojure、Crystal、D、Dart、Elixir、Erlang、Fancy、Go , Haskell, Haxe, Java, JavaScript (Node.js), Lisp, Lua, MatLab, Objective-C, OCaml info, Perl, PHP, Prolog, Pure Data, Python, R, Rebol, Ruby, Rust, Scala, Scheme, Smalltalk, Tcl |
服务器端脚本 | 没有 | Lua |
触发器 | 无 | 无 |
分区方法 | 无 | 分片 |
复制方式 | 无 | 主从复制 |
MapReduce | 否 | 否 |
外键 | 否 | 否 |
事务概念 | 无 | 乐观锁定,命令块和脚本的原子执行 |
并发 | 是 | 是 |
持久性 | 否 | 是 |
用户概念 | 是 | 简单的基于密码的访问控制 |
安装 | Memcached 的安装和运行有点复杂。 | 安装 Redis 要容易得多,不需要依赖项。 |
内存使用 | Memcached 比 Redis 更节省内存,因为它消耗的元数据内存资源相对较少。 | Redis 的内存效率更高,但只有在使用 Redis 哈希之后。 |
持久性 | Memcached 不使用持久性数据。使用 Memcached 时,数据可能会因重新启动而丢失,并且重建缓存是一个代价高昂的过程。 | Redis 可以处理持久数据。默认情况下,它至少每 2 秒将数据同步到磁盘,提供可选和可调整的数据持久性,用于在计划关闭或意外故障后引导缓存。虽然我们倾向于将缓存中的数据视为易失和瞬态的,但将数据持久化到磁盘在缓存场景中可能非常有价值。 |
复制 | Memcached 不支持复制。 | Redis 支持主从复制。 |
存储类型 | MemcacheD 将变量存储在其内存中,并直接从服务器内存中检索任何信息,而不是再次访问数据库。 | Redis 就像一个驻留在内存中的数据库。它从其数据库中执行(读取和写入)键/值对以返回结果集。这就是为什么它被开发者用于实时指标和分析的原因。 |
执行速度和性能 | MemcacheD 非常适合处理高流量网站。它可以一次读取许多信息,并在极好的响应时间内给反馈。 | Redis 既不能处理高流量读取,也不能处理大量写入。 |
数据结构 | MemcacheD 在其数据结构中仅使用字符串和整数。因此保存的所有内容都可以是字符串或整数。这很复杂,因为对于整数,唯一可以做的数据操作就是添加或减去它们。如果您需要保存数组或对象,则必须先将它们序列化,然后再保存。要读回它们,需要取消序列化。 | Redis 具有更强大的数据结构,它不仅可以处理字符串整数,还可以处理二进制安全字符串、二进制安全字符串列表、二进制安全字符串集和排序集。 |
键的长度 | Memcached 键的长度最大为 250 字节。 | Redis 的键的长度最大为 2GB。 |
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Redis和Memcached的区别
本文链接:https://www.vsdiffer.com/vs/redis-vs-memcached.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。