memcached限制以及与reids的比较
博客分类: 知识积累
memcachedredis
一、memcached限制
在分布式企业级应用中,memcached被广泛使用。但是关于它自身的一些限制需要我们了解:
1、过期时间
memcached的缓存策略为:失效时间 + LRU(最近最少使用)。其过期时间设置上限阈值为30天,若超过30天后,将获取不到存储的数据。
2、数据稳定性
memcached需要保证集群的内存空间足够大,否则内存满了之后,会采用LRU置换算法,将部分数据清除,加上其无法进行持久化,所以将导致数据丢失。
3、存储限制
键被限制在250字符之内。而且由于memcached默认采用了slab内存分配机制,所以单个数据项不能超过 1M。memcached没有采用malloc/free的方法来分配内存,因为后者可能产生大量内存碎片,操作系统极端情况下需要消耗大量资源在内存管理上。使用了slab后,通过分配的可重复使用的chunk来解决这一问题。关于memcached的内存管理机制可以参考http://basiccoder.com/memcached-memory-mamagement.html
4、访问限制
允许最大同时连接数200.
5、支持数据结构
只支持key-value结构。没有redis提供的丰富数据结构
6、没有自带分布式实现。需要自己实现。比如比较常见的,通过虚拟化一致性哈希即可实现。
二、与redis的比较这也是一个老生常谈的话题。相比来说,redis作为一种缓存,或者干脆称之为nosql数据库,提供了丰富的数据类型(list、set等),可以将大量数据的排序从单机内存解放到redis集群中处理,并可以用以实现轻量级消息中间件。其自带master-slave备份、支持持久化。memcached和redis的性能比较上,redis在小于100K的数据读写上速度优于memcached。但数据大小过大时,其性能将急遽降低,劣于memcached。但是不知道最新的redis是否在该问题上已经做了优化。
分享到:
相关推荐
### Memcached与Redis对比分析 #### 一、概述 在现代软件开发中,为了提高系统的响应速度和降低数据库的压力,缓存技术变得越来越重要。Memcached和Redis是两种广泛使用的缓存解决方案,它们各有特点,在不同的...
在性能上,Redis和Memcached相对比较接近,并且通常高于MongoDB。这主要是因为它们简单的设计和对内存的直接操作,减少了延迟。 操作的便利性: Memcached的数据结构相对单一,仅支持key-value形式的数据,这意味着...
本文将深入探讨四种常用的技术:Memcached、MySQL、Oracle和Redis,它们各自在存储速率上的表现,并针对标题和描述中的知识点进行详细解析。 首先,Memcached是一个高性能的分布式内存对象缓存系统,用于加速动态...
Memcached 和 Redis 性能测试 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。...
Redis与Memcached相比,有几个显著的区别: 1. **数据类型**:Redis支持更多类型的数据结构,包括字符串、列表、集合和有序集合等,而Memcached仅支持字符串类型的键值对。 2. **数据持久化**:Redis支持数据的...
与共享内存不同,Memcached的内存管理不依赖于系统共享内存机制,因此不受共享内存大小的限制。 6. **应用场景** Memcached广泛应用于高并发的Web应用,如社交网络、新闻站点等,它可以极大地缓解数据库的压力,...
Redis本质_上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加 载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是 纯内存操作,Redis的性能非常出色,每秒可以...
与Memcached相比,Redis具有以下优势:支持更丰富的数据类型;由于其数据结构的丰富性,速度也比Memcached更快;Redis提供了持久化功能,可以在断电或者重启后依然保持数据不丢失;支持数据备份和主从复制,提供了高...
限制 limits是一个 Python 库,用于对常用的存储后端(Redis、Memcached、MongoDB 和 Etcd)执行速率限制。支持的策略固定窗口此策略以固定间隔重置(分钟、小时、天等开始)。例如,给定10/minute策略的速率限制将...
- `redis.windows.conf`是Redis在Windows上的默认配置文件,可以根据需求进行修改,如设置端口号、密码、内存限制等。 5. **启动与关闭Redis**: - 运行`redis-server.exe redis.windows.conf`命令启动Redis...
- Redis与Memcached的区别:Memcached仅支持简单的键值对,而Redis提供更丰富的数据结构;Redis支持持久化,而Memcached不持久化;Redis支持主从复制,Memcached不支持。 - Redis如何处理过期键:Redis有两种过期...
Memcached只支持简单的键值存储,且每个条目的大小被限制在1MB以内,而Redis不仅支持多种数据类型,单个值的大小限制更是高达1GB。此外,Redis支持数据持久化和更为复杂的查询操作。 许多大型网站和企业级应用正在...
3. 配置Redis:用户可以根据自己的需求配置Redis的参数,如限制Redis的最大内存等。 五、Redis的基本命令 1. SET:设置键值对。 2. GET:获取键值对。 3. KEYS:获取所有键。 4. EXISTS:检查键是否存在。 5. DEL...
Redis中键值对的存储会包含额外开销,例如类型信息和引用计数,这可能导致与Memcached相比更高的内存占用。 7. **Memcached的工作原理**: - 完全基于内存,C/S架构,使用libevent处理异步I/O。 - 数据以key-...
在本“Redis安装包”中,包含了Redis的源代码以及一个可能的Memcached版本,这使得我们可以详细了解这两种不同的缓存系统。 1. Redis - 特性:Redis支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这...
5. **存储较大的数据**:Memcached对单个值的最大限制为1MB,而Redis则没有这一限制,因此在需要存储较大值的情况下,Redis是更好的选择。 #### 二、Memcached的优势场景 尽管Redis功能强大,但在某些特定场景下,...