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能力对比:

比对项MemcacheRedis
持久化存储不具有持久化存储能力具有持久化存储能力
缓存穿透问题节点故障可能出现缓存穿透具有原生态高可用和主从复制能力
分布式能力分布式需要客户端实现具有原生态分布式集群
数据迁移能力跨机房数据同步困难具有跨机房数据迁移能力
架构扩容能力架构扩容复杂度高具有架构扩容解决方案
性能读写能力支持多线程读写能力,读写能力快支持单线程读写能力,读写能力较低
数据类型支持单一数据类型支持多种数据类型
虚拟内存定义不支持自定义虚拟内存具有自定义虚拟内存能力

总结:Memcahe和Redis读写性能对比

memcache:比较适合多用户访问场景,每个用户少量的读写操作;

Redis:比较适合少用户访问场景,每个用户大量的读写操作;

缓存服务产品-Tair

  • Tair具有高性能读写能力

  • Tair具有多种存储引擎应用,支持三种引擎(ddb、rdb、ldb);

  • Tair具有高可用架构构建能力

  • Tair具有分布式架构和分片集群(支持了几乎所有淘宝业务的缓存)

  • Tair在单机情况下,读写性能较其他两种产品较慢

1.3 缓存服务应用场景

多种缓存服务产品的应用场景:

缓存服务应用场景
Memcached多核的缓存服务,更加适合于多用户并发访问次数较少的应用场景
Redis单核的缓存服务,单节点情况下,更加适合于少量用户,多次访问的应用场景

说明:Redis在500并发量的处理能力是比较强的,一般采用单机多实例架构,并且配合构建集群应用;

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐