Redis 2.8 架构分析

1  Redis架构分析

1.1   为什么要用nosqlàredis?

1)存储方式的区别:

nosql:使用K-V的方式存储数据

例如:mset   id 0001  name  zhangsan age   18

关系型数据库:使用多表结构关联的方式存储数据

例如:


Id


Name


Age


0001


Zhangsan


18




2)读写方式的区别:

nosql:可以把不同类型的数据通过k-v的方式进行快速的读写操作,无关系性、数据结构简单。

关系型数据库:在不同类型的数据下需要进行多表关联的方式读写,造成性能上损耗

3)nosql的优缺点

优点:读写数据快,取决于他的无关系性,数据库结构简单。

缺点:不支持sql工业化的数据操作,对于业务类型的数据使用不方便,并且最重要的是不支持对于事务的操作。不适合做数据安全性要求很高的数据存储。

1.2   为什么redis可以快速,并且替代memcache,占领市场

1.2.1  为什么要与memcache来比较

其他的缓存框架(如oscache)只是一个小型的jar包形式的框架,档次不够,而memcache跟redis一样也是可以独立运行在服务器上,并且支持了分布式集群,但是我们今天的redis不光是独立运行,还支持了分布式集群,而且还支持持久化和丰富数据类型,并且在缓存上更加优秀。

1.2.2  了解Memcache实际应用中出现的问题

1)Memcache数据丢失问题:

为了防止意外(服务器宕机、断电),会把一个时间段缓存中的数据插入到DB中,这个过程会给服务器运行效率带来巨大的影响,如果这个时候在高并发的时间段,可能造成服务器压力过大出现死机,数据丢失,然而这种数据的丢失对于企业来说却是灾难性的,所以一般我们会把入库的时间与并发的时间分开(2-3个小时)。

2)数据一致性的问题:

在这个时差(2-3个小时)有的模块已经修改了DB中的数据,但是memcache还没有同步,所以数据就不一致了,为了解决数据一致和命中率的问题,在企业中通常让客户端请求读取不到的数据,去DB中读取,导致大量请求穿透到DB,导致DB无法支撑。

3)命中率低问题:

hash算法是有失误率的,可能在某一段时间的失误率很大导致在memcache中读取不到数据。同时为了解决命中率的问题,在企业中通常也会让客户端请求读取不到的数据,去DB中读取,也会导致大量请求穿透到DB,导致DB无法支撑。

4)业务量增加、访问量持续增长的问题:

导致DB(mysql)表结构的变化,需要重新建表、拆表,memcache也需要扩容,这些工作会浪费很多的人力、物力,造成资源上的浪费。

1.2.3  Memcache+mysql  vs redis

1)redis支持了数据持久化的功能(相当于数据库),我们可以配置让从服务器来做RDB、AOF。

(a)可以在很大的程度上防止了数据的丢失。

(b)redis提供了持久化(相当于数据库),可以设计实现前后台数据分离,数据一致性和命中率的问题完全由redis解决。redis存储数据结构简单,建表拆表的情况不存在。

2)数据类型

(a)memcache只支持string类型。

(b)Redis支持5种数据类型,企业使用更加方便。

3)缓存性能

(a)缓存性能比memcache优(在数据结构、内存使用上进行了优化调整,所以比memcache性能优)

(b)内存使用区别:

Memcache:使用内存池的方式,可以省去申请/释放内存的开销,但是在空间上就有了浪费,因为他不能释放空闲内存空间。当内存空间不够的时候,memcache即便是新数据也会被剔除。

Redis:现场申请内存的方式来存储数据。所以不存内存空间的浪费。当内存空间不够的时候,即便是导致swap(替换),也不会剔除数据(非临时数据)。所以Redis更适合作为存储而不是cache。

1.3   Redis在企业架构中的应用

l  redis在电商网站中存储的是门户数据,用来处理大数据,高并发的问题

l  关系型数据库在电商网站中存储的是后台业务类型的数据。

1.4   Redis应用场景

l  应用范围:电商购物商品信息缓存、商品抢购、购票系统的队列、新浪微博对于大量不同数据类型的操作、实时聊天信息平台、游戏排行榜

可用场景:数据量比较大且数据内容变化大的场合,需要进行数据快速的读写。并且对数据的安全性要求不高。

不可用的场合:对于数据安全性要求绝对高的情况,比如:银行转账、存取款。

1.5   总结:

1.nosql->redis与关系型数据库差别:

存储方式:数据存储结构简单,不存在表关联

读写速度:速度快,取决于结构简单、无关系型

2.针对于同级别的缓存框架而言,与memcache的对比

--缓存性能比memcache好

--数据类型丰富

--持久化

3.用memcache+mysql与redis对比

业务数据量的不断增加,和访问量的持续增长,遇到的问题:

--mysql需要建表拆表,memcache需要扩容

--数据一致性(持久化)

--访问穿透到DB

时间: 2024-10-10 08:58:35

Redis 2.8 架构分析的相关文章

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,

秒杀系统架构分析与实战(参考、转载)

目录[-] 0 系列目录 1 秒杀业务分析 2 秒杀技术挑战 3 秒杀架构原则 4 秒杀架构设计 4.1 前端层设计 4.2 站点层设计 4.3 服务层设计 4.4 数据库设计 4.4.1 基本概念 4.4.2 设计思路 5 大并发带来的挑战 5.1 请求接口的合理设计 5.2 高并发的挑战:一定要“快” 5.3 重启与过载保护 6 作弊的手段:进攻与防守 6.1 同一个账号,一次性发出多个请求 6.2 多个账号,一次性发送多个请求 6.3 多个账号,不同IP发送不同请求 7 高并发下的数据安全

【转载】Instagram架构分析笔记

原文地址:http://chengxu.org/p/401.html Instagram 架构分析笔记 全部 技术博客 Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iPhone 上最火爆的图片类工具,instagram 用户数量已经超过 1400 万,图片数量超过 1.5 亿张.不得不说,这真他妈是个业界奇迹. 几天前,只有三个人的 Instagram 工程师团队发布了一篇文章:What Powers Instagram: Hundreds of Instance

【转载】秒杀系统架构分析与实战

本文转载自:http://my.oschina.net/xianggao/blog/524943 0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是100

twemproxy架构分析

twemproxy概述  twemproxy是搭建分布式缓存集群的重要组件之一.他能将来自客户端的redis包通过key分片发送到不同的redis服务器,而不是发到单个redis服务器上.因此,可以使本来集中到一个redis上的信息被分流到几个redis上,这就使得 twemproxy能支持redis集群.不难想到,因为twemproxy的分片功能,可以轻松地对redis集群进行水平扩展(简单地理解成在一个业务中加入更多的redis服务器),同时对于代码稍加改造,我们就可以得到能读写分离的red

电商商品秒杀系统架构分析与实战

网址:http://my.oschina.net/xianggao/blog/524943 0 系列目录 1 秒杀业务分析 2 秒杀技术挑战 3 秒杀架构原则 4 秒杀架构设计 4.1 前端层设计 4.2 站点层设计 4.3 服务层设计 4.4 数据库设计 4.4.1 基本概念 4.4.2 设计思路 5 大并发带来的挑战 5.1 请求接口的合理设计 5.2 高并发的挑战:一定要“快” 5.3 重启与过载保护 6 作弊的手段:进攻与防守 6.1 同一个账号,一次性发出多个请求 6.2 多个账号,一

Instagram 架构分析笔记(转)

原文:http://dbanotes.net/?s=Instagram+%E6%9E%B6%E6%9E%84%E5%88%86%E6%9E%90%E7%AC%94%E8%AE%B0 作者:冯大辉 Instagram 团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iPhone 上最火爆的图片类工具,instagram 用户数量已经超过 1400 万,图片数量超过 1.5 亿张.不得不说,这真他妈是个业界奇迹. 几天前,只有三个人的 Instagram 工程师团队发布了一篇文章:What

[转]秒杀系统架构分析与实战

转自:http://my.oschina.net/xianggao/blog/524943 目录[-] 0 系列目录 1 秒杀业务分析 2 秒杀技术挑战 3 秒杀架构原则 4 秒杀架构设计 4.1 前端层设计 4.2 站点层设计 4.3 服务层设计 4.4 数据库设计 4.4.1 基本概念 4.4.2 设计思路 5 大并发带来的挑战 5.1 请求接口的合理设计 5.2 高并发的挑战:一定要“快” 5.3 重启与过载保护 6 作弊的手段:进攻与防守 6.1 同一个账号,一次性发出多个请求 6.2

万字长文:ELK(V7)部署与架构分析

ELK(7版本)部署与架构分析 1.ELK的背景介绍与应用场景 在项目应用运行的过程中,往往会产生大量的日志,我们往往需要根据日志来定位分析我们的服务器项目运行情况与BUG产生位置.一般情况下直接在日志文件中tailf. grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量过大.文本搜索太慢.如何多维度查询.这就需要对服务器上的日志收集汇总.常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问. 一般大型系统往往是一种分布式