在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。
(本文主要讨论Redis未启用VM支持情况)
1. Schema
MySQL: 需事先设计
Memcached: 无需设计
Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划
- 数据项: value保存的内容是什么,如用户资料
- Redis数据类型: 如String, List
- 数据大小: 如100字节
- 记录数: 如100万条(决定是否需要拆分)
- ??
上面的规划就是一种schema,为什么Redis在大型项目需要事先设计schema?因为Redis服务器有容量限制,数据容量不能超出物理内存大 小,同时考虑到业务数据的可扩充性,记录数会持续增多、单条记录的内容也都会增长,因此需要提前规划好容量,数据架构师就是通过schema来判断当前业 务的Redis是否需要“分库分表”以满足可扩展需求。
2. 容量及带宽规划
容量规划
MySQL: < 硬盘大小
Memcached: < RAM
Redis: < RAM
带宽规划
由于Redis比MySQL快10倍以上,因此带宽也是需要事先规划,避免带宽跑满而出现瓶颈。
3. 性能规划(QPS)
当系统读写出现瓶颈,通常如何解决?
MySQL
写: 拆分到多服务器
读: (1) 拆分 (2) 写少也可以通过增加Slave来解决
Memcached
读写: 都通过hash拆分到更多节点。
Redis:
写:拆分
读: (1) 拆分 (2) 写少也可以通过增加Slave来解决
4. 可扩展性
MySQL: 分库分表
Memcached: hash分布
Redis:也可以分库,也可以hash分布
小结
通过以上分析,Redis在很多方面同时具备MySQL及Memcached使用特征,在某些方面则更像MySQL。
由于Redis数据不能超过内存大小,一方面需要进行事先容量规划,保证容量足够;另外一方面设计上需要防止数据规模无限制增加,进而导致Redis不可扩展。
Redis需要象MySQL一样预先设计好拆分方案
相关推荐
本文将深入探讨四种常用的技术:Memcached、MySQL、Oracle和Redis,它们各自在存储速率上的表现,并针对标题和描述中的知识点进行详细解析。 首先,Memcached是一个高性能的分布式内存对象缓存系统,用于加速动态...
标题和描述中提到的"php mysql redis nginx memcached"是一组常见的Web开发技术组合,用于构建高性能、可扩展的Web应用程序。以下是对这些技术的详细解释: 1. PHP(Hypertext Preprocessor):PHP是一种广泛使用的...
Memcached、Redis、MySQL存储层面试...本文总结了Memcached、Redis和MySQL存储层的面试问题,涵盖了缓存机制、内存管理、分布式集群、事务处理、锁机制、数据类型等方面的知识点,为IT行业专业人士提供了详细的IT知识。
本教程涵盖了五个主流的数据库系统:MySQL、Oracle、Redis、Mycat和MongoDB,以及缓存系统Memcached。让我们逐一探讨它们的基础知识、应用场景以及重要特性。 1. MySQL MySQL是一款开源、关系型数据库管理系统,...
2. **Redis与Memcached对比**:Redis支持更丰富的数据结构,如哈希、列表和集合,而Memcached仅支持字符串。 3. **数据结构与应用场景**:Redis的数据结构如字符串、哈希、列表、集合和有序集合,各有特定用途。 4...
数据库是存储和管理数据的核心工具,本教程涵盖了多个主流的数据库系统,包括MySQL、Oracle、Redis、Mycat、MongoDB以及Memcached。这些数据库在不同的应用场景下各有优势,理解和掌握它们能帮助我们更好地设计、...
linux 服务器搭建工具java+memcached+mysql+redis+tomcat
Amazon ElastiCache 示例使用与Redis OSS 兼容的Amazon ElastiCache和Memcached的示例和文档。博客在线特征存储使用兼容 Redis OSS 的 Amazon ElastiCache 在 AWS 上构建在线特征存储,以支持需要超低延迟和高吞吐量...
标题中的“canal”的MySQL与“redis/memcached/mongodb”的NoSQL数据实时同步方案,主要涉及了数据库间的数据迁移和实时同步技术。这个话题涵盖了多个关键知识点,包括: 1. **Canal**: Canal是阿里巴巴开源的一个...
6.保证对应关系的简单性:一个mysql表对应一个 redis实例(redis单线程,多实例保证分流不阻塞),关联关系数据交给接口业务 数据:mysql->binlog->MQ->redis(不过期、关闭RDB、AOF保证读写性能) (nosql数据仅用...
### Redis作为MySQL缓存服务器...通过以上步骤,我们成功搭建了一个基于Redis的MySQL缓存服务器环境,实现了读写分离,提高了系统的性能和稳定性。这种方式特别适用于需要频繁读取数据但写操作相对较少的应用场景。
2. memory cache: 将 Redis 看作是一个把数据存储在内存中的高速缓存,用来在应用和数据库之间提供缓冲,替代 memcached。 3. data structure server: 主要利用了复杂数据结构的高速操作,提供某些特殊业务场景的...
我们知道,mysql是持久化存储,存放在磁盘里面,检索的话,会涉及到一定的IO,为了解决这个瓶颈,于是出现了缓存,比如现在用的最多的 memcached(简称mc)。首先,用户访问mc,如果未命中,就去访问mysql,之后像内存...
Dockerized PHP 开发堆栈Nginx、MySQL、MongoDB、PHP-FPM、HHVM、Memcached、Redis、Elasticsearch 和 RabbitMQPHP Docker化Dockerized PHP 开发堆栈Nginx、MySQL、MongoDB、PHP-FPM、HHVM、Memcached、Redis、...
在这个面试专题系列中,我们将聚焦于三个广受欢迎的分布式数据库技术:Memcached、Redis和MongoDB。 1. **Memcached**: - **简介**:Memcached是一款高性能、分布式内存对象缓存系统,用于减轻数据库负载,提升...
C#公用类库,包含了Redis,Memcached,Json,Xml,ADO.NET数据库操作兼容以下数据库(SQLSERVER,MYSQL,ORACLE,达梦,SQLITE,ACCESS,OLEDB,ODBC等数十种数据库),正则表达式,QueryableX(ORM)和E….zip
集成的软件有:Nginx、PHP、MySQL、Redis、Memcached、Sphinx、MongoDB、FileZilla FTP、Xdebug、Zend Guard Loader,Web Apps:phpMyAdmin、SQL Buddy、memcache、MemAdmin、phpRedisAdmin、webgrind、RockMongo 等...
2、Redis 相比 memcached 有哪些优势? 3、Redis 支持哪几种数据类型? 4、Redis 主要消耗什么物理资源? 5、Redis 的全称是什么? 6、Redis 有哪几种数据淘汰策略? 7、Redis 官方为什么不提供 Windows 版本? 8、...