Redis服务概述介绍
Redis是数百万开发人员使用的开源内存数据存储服务,经常被用于数据库、缓存、数据流引擎、以及消息中间件;简单理解:Redis 是完全开源的,遵守BSD协议,是一个高性能的 key-value 数据库;Redis服务属于NoSQL数据库产品系列,早期出现在网站架构中,主要是配合关系型数据库(RDBMS)完成某些工作任务的;对于关系型数据库主要负责核心业务数据的存储和查询;对于非关系性数据库主要作为
1.1 缓存服务概述介绍
Redis是数百万开发人员使用的开源内存数据存储服务,经常被用于数据库、缓存、数据流引擎、以及消息中间件;
简单理解:Redis 是完全开源的,遵守BSD协议,是一个高性能的 key-value 数据库;
Redis服务属于NoSQL数据库产品系列,早期出现在网站架构中,主要是配合关系型数据库(RDBMS)完成某些工作任务的;
-
对于关系型数据库主要负责核心业务数据的存储和查询;
-
对于非关系性数据库主要作为配合数据库存储和查询的缓存业务;
对于非关系性数据库也是存在很多种类的:Redis(缓存型)、MongoDB(文档型)、ES(日志型)...
1.2 缓存服务产品介绍
缓存服务产品-Redis
-
Redis具有丰富的数据类型可以进行应用,其中包括:key-value、list、set、zset、hash等数据结构类型;
-
Redis具有持久化存储能力,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;
-
Redis具有多种内存分配和回收的解决方案;
-
Redis具有原有关系型数据库的事务处理能力(弱事务);
-
Reids具有消息队列相关功能,支持消息订阅能力,但是不支持消息回溯和消息堆积;
-
Redis具有原生态的高可用架构构建技术;
-
Redis具有数据的备份能力,即master-slave模式的数据备份;
-
Redis具有原生态的分布式架构和分片集群;
缓存服务产品-Memcache
-
Memcache具有高性能读写能力;
-
Memcache具有客户端式的分布式集群,以及一致性hash功能;
-
Memcache具有多核结构,多线程读写能力;
Memcache能力与Redis能力对比:
比对项 | Memcache | Redis |
---|---|---|
持久化存储 | 不具有持久化存储能力 | 具有持久化存储能力 |
缓存穿透问题 | 节点故障可能出现缓存穿透 | 具有原生态高可用和主从复制能力 |
分布式能力 | 分布式需要客户端实现 | 具有原生态分布式集群 |
数据迁移能力 | 跨机房数据同步困难 | 具有跨机房数据迁移能力 |
架构扩容能力 | 架构扩容复杂度高 | 具有架构扩容解决方案 |
性能读写能力 | 支持多线程读写能力,读写能力快 | 支持单线程读写能力,读写能力较低 |
数据类型支持 | 单一数据类型 | 支持多种数据类型 |
虚拟内存定义 | 不支持自定义虚拟内存 | 具有自定义虚拟内存能力 |
总结:Memcahe和Redis读写性能对比
memcache:比较适合多用户访问场景,每个用户少量的读写操作;
Redis:比较适合少用户访问场景,每个用户大量的读写操作;
缓存服务产品-Tair
-
Tair具有高性能读写能力
-
Tair具有多种存储引擎应用,支持三种引擎(ddb、rdb、ldb);
-
Tair具有高可用架构构建能力
-
Tair具有分布式架构和分片集群(支持了几乎所有淘宝业务的缓存)
-
Tair在单机情况下,读写性能较其他两种产品较慢
1.3 缓存服务应用场景
多种缓存服务产品的应用场景:
缓存服务 | 应用场景 |
---|---|
Memcached | 多核的缓存服务,更加适合于多用户并发访问次数较少的应用场景 |
Redis | 单核的缓存服务,单节点情况下,更加适合于少量用户,多次访问的应用场景 |
说明:Redis在500并发量的处理能力是比较强的,一般采用单机多实例架构,并且配合构建集群应用;
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)