一、定义
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Memcached 是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。
以上内容来着百度词条
二、区别
1、类型
redis是一个开源的内存数据结构储存系统,用作数据库,缓存和消息代理;在redis中,并不是所有的数据都一直存储在内存中的,部分储存在服务器。
memcached是一个免费的免费的开源高性能分布式内存对象缓存系统,所有的数据都是储存在内存中,它通过减少数据库负载来加速动态web应用程序。
2、数据结构
redis支持字符串、散列、列表、集合、有序集合、位图、超级日志和空间索引。
memcached支持字符串和整数。
3、执行速度
memcached的数据储存在内容中,因而读写速度高于redis。
4、复制
memcached不支持复制,而redis主持主从复制,允许从属redis服务器成为主服务器的精确副本;来自任何redis服务器的数据都可以复制到任意数量的从属服务器。
5、密钥长度
redis的密钥长度最大为2GB,而memcached的密钥长度最大为250字节。
6、线程
redis是单线程的,memcached是多线程的。在100k以上的储存数据,memcached性能要高于redis,虽然redis在储存大数据的性能上进行了优化,但是比起memcached还是稍有逊色。
7、集群管理
memcached不支持持久化和分布式,redis支持持久化和分布式。memcached只能采用客户端实现分布式储存,redis偏向于在服务器端构建分布式储存。
三、选择
redis更多场景是作为memcached的代替者来使用,但需要出key-value之外的更多数据类型支持或储存的数据不能被剔除是,使用redis跟合适。如果只做缓存的话,memcached已经足够应付绝大部分的需求,redis的出现知识提供了一个更加好的选项。实际使用还是得根据自己的需求来定。
以上内容参考: