`

什么场景使用memcached而不使用redis

阅读更多

当 从Redis中读取数据的时候,如果读取的key对应的value不在内存中,那么Redis就需要从swap文件中加载相应数据,然后再返回给请求方。 这里就存在一个I/O线程池的问题。在默认的情况下,Redis会出现阻塞,即完成所有的swap文件加载后才会相应。这种策略在客户端的数量较小,进行 批量操作的时候比较合适。但是如果将Redis应用在一个大型的网站应用程序中,这显然是无法满足大并发的情况的。所以Redis运行我们设置I/O线程 池的大小,对需要从swap文件中加载相应数据的读取请求进行并发操作,减少阻塞的时间。

如果希望在海量数据的环境中使用好Redis,我相信理解Redis的内存设计和阻塞的情况是不可缺少的。

 

Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较,总体来看还是比较客观的,现总结如下:
1)性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起Memcached,还是稍有逊色。
2)内存使用效率对比:使用简单的key-value存储的话,Memcached的内存利用率更高,而如果Redis采用hash结构来做key-value存储,由于其组合式的压缩,其内存利用率会高于Memcached。
3)Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似的修改再set回去。这大大增加了网络IO的次数和数据体积。在Redis中,这些复杂的操作通常和一般的GET/SET一样高效。所以,如果需要缓存能够支持更复杂的结构和操作,那么Redis会是不错的选择。
分享到:
评论

相关推荐

    Tomcat+MemcachedRedis集群

    Tomcat+MemcachedRedis集群,有视频实战以及源码。包含Tomcat性能优化,Redis基础入门以及使用场景,性能优化

    Memcached VS Redis

    Memcached VS Redis:2者究竟有哪些区别,什么场景下应用那种类型的缓存服务器。

    互联网分布式缓存技术(redis、memcached、ssdb)

    互联网分布式缓存技术 课程主讲: 互联网应用高级架构师 白贺翔涉及技术: Redis、SSDB、Memcached课程描述: 介绍互联网分布式技术的重要性、背景、应用范围;目前互联网行业使用分布 式缓存进行设计的比例,...

    redis和memcached和MongoDB区别.xlsx

    之前用过redis和MongoDB,但都是没有系统的学习,新公司用到memcached,所以去了解他们的区别和应用场景,方便理解。

    Redis面试题50道(含答案)_.pdf

    7、Redis 官方为什么不提供 Windows 版本? 8、一个字符串类型的值能存储最大容量是多少? 9、为什么 Redis 需要把所有数据放到内存中? 10、Redis 集群方案应该怎么做?都有哪些方案? 11、Redis 集群方案什么情况...

    Redis面试专题30道.zip

    7、Redis 官方为什么不提供 Windows 版本? 8、一个字符串类型的值能存储最大容量是多少? 9、为什么 Redis 需要把所有数据放到内存中? 10、Redis 集群方案应该怎么做?都有哪些方案? 11、Redis 集群方案什么情况...

    Linux+Nginx+Memcached+Redis+PHP+电商购物模块实战开发

    为适应企业对高端开发工程师的需求,整合了Linux系统的常见使用,包括文件操作、权限操作、常用shell命令,以及mysql、nginx、php环境的搭建,让童鞋们顺利掌握Linux下的开发,适应大公司的工作场景。另外的重头戏...

    Java知识点之Redis篇.pdf

    1.0 使用 Redis 有哪些好处? 1.1 redis 相比 memcached 有哪些优势? 1.2 redis 常见性能问题和解决方案 1.3 MySQL 里有 2000w 数据...1.8 是否使用过 Redis 集群,集群的原理是什么? 1.9 redis 集群如何保证一致性?

    Redis常见面试题汇总.pdf

    1、什么是Redis? Redis本质_上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加 载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是 纯内存操作,Redis的性能非常...

    现代化内存存储:用于替代Redis和Memcached 它提供了高性能和可扩展的内存存储解决方案,适用于各种应用场景

    一个现代化的替代品,可用于替代Redis和Memcached。它提供了高性能和可扩展的内存存储解决方案,适用于各种应用场景。Dragonfly的设计目标是提供更好的性能、更好的扩展性和更好的稳定性,成为一个可靠的内存缓存和...

    Redis学习手册

    然而需要指出的是,该产品的 Licence 为 GPL,这就意味着它并不是在所有情况下都是免费使用的。 2). 对 MongoDB 的定义为 Oriented-Document 数据库服务器,和 BerkeleyDB 不同的是该数据 库可以像其他关系型数据库...

    Spring Boot 使用 Redis.docx

    Redis 是目前业界使用最广泛的内存数据存储。相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化。除此之外,Redis 还提供一些类数据库的特性,比如事务,HA,主从库。...

    聊聊高并发高可用那些事(Kafka、Redis、MySQL)

    # MySQL篇内容 - 一条SQL语句的执行流程 - InnoDB数据读取和写入过程 - 基本数据结构介绍 - MyIsAM InnoDB 等存储引擎 ...- Redis、Memcached 对比分析 - 数据结构以及应用场景 - 缓存雪崩、缓存击穿、缓存穿透 ......

    Redis数据库的应用场景介绍

    主要介绍了Redis数据库的应用场景介绍,本文讲解了MySql+Memcached架构的问题、Redis常用数据类型、Redis数据类型应用和实现方式、Redis实际应用场景等内容,需要的朋友可以参考下

    redis数据类型及应用场景知识点总结

    redis数据类型及应用场景 Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 一、string 简介:Strings数据类型是最常用、简单的key-value类型,...

    Redis:Redis代码

    一、Redis是什么? Redis是一个开源的底层使用C语言编写的key-value存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、hash(哈希)、list(列表)、set(无序集合)、zset...

    浅谈Redis数据库的键值设计

    redis的DBA需要熟悉数据结构,并能了解使用场景。  下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。  用户登录系统  记录用户登录信息的一个系统, ...

    java面试最全八股文

    Spring Cloud对比下Dubbo,什么场景下该使用Spring Cloud? CAP原理和BASE理论 CAP原则(CAP定理)、BASE理论 一、CAP原则 一致性与可用性的决择编辑 取舍策略 BASE理论 基本可用 最终一致性 小结: 与NoSQL的关系编辑...

Global site tag (gtag.js) - Google Analytics