10 2020 档案
摘要:一. 主从复制 1. 含义 在分布式系统中,为了解决单点问题,通常会把数据复制多个副本到其它机器,满足故障恢复和负载均衡等要求,Redis也是如此,提供了主从复制功能。(redis第一代架构) 实质:一个主服务器(master)对应多个从服务器(slave),主从之间实现数据同步,主服务器负责【写】
阅读全文
摘要:一. 数据持久化 1. 含义 Redis 提供了 RDB 和 AOF 两种持久化方式,默认开启的是RDB,如果需要AOF,需要手动修改配置文件进行开启。 RDB:是一种对Redis存在内存中的数据周期性的持久化机制,将内存中的数据以快照的形式硬盘,实质上是fork了一个子进程在执行数据存储,采用的是
阅读全文
摘要:一. 缓存雪崩 1. 含义 同一时刻,大量的缓存同时过期失效。 2. 产生原因和后果 (1). 原因:由于开发人员经验不足或失误,大量热点缓存设置了统一的过期时间。 (2). 产生后果:恰逢秒杀高峰,缓存过期,瞬间海量的QPS(每秒查询次数)直接打到DB上,如果系统架构没有熔断机制,直接将导致系统全
阅读全文
摘要:一. String 1. 数据类型介绍 典型的Key-Value集合,不少人喜欢用来存实体,需要序列化成字符串,获取的时候需要反序列化一下。(还是建议合理选择redis的数据结构,而不是万物都用string) 2. 应用场景 (1). 缓存 string类型最简单的一个应用就是Key-value缓存
阅读全文
摘要:一. Redis整体介绍 1. NOSQL介绍 1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SN
阅读全文
摘要:一. Redis安装和连接 1. 下载地址 官网:https://redis.io/ 官网-中文:http://www.redis.cn/ Linux下载地址:https://download.redis.io/releases/ Windows下载地址:https://github.com/Mic
阅读全文
摘要:一. Cluster搭建 1. 事先准备 (1). 服务器环境:Centos8 (2). Redis环境:安装redis5.0版本 PS: 在redis 5.0之前,redis cluster的搭建需要借助Ruby环境,使用redis-trib指令进行集群的管理,redis5.0以后,redis已经
阅读全文
摘要:一. Nginx限流和负载均衡 1. 限流 可以ip限流或者限制总请求数。防止大量恶意请求,通过nginx的ip限制处理 1秒1个ip只能请求一次,但也有弊端,比如多个人在同一个ip下,容易误杀,所以看怎么取舍了. 参考代码: #user nobody; worker_processes 1; #e
阅读全文
摘要:一. 事件总线机制 1. 业务改造 引入时间总线的概念,采用CAP框架进行业务处理,同时利用RabbitMQ代替Redis队列,采用SQLServer进行本地消息表的存储, 采用 推模式 发送消息,我们习惯称之为 发布-订阅 模式。 关于基于CAP框架实现事件总线,详见: https://www.c
阅读全文
摘要:一. 前言 1.背景 最初版本的消费者一条一条获取,然后创建订单扣减库存,非常慢,我们希望在保证消费顺序的情况下提升消费速度。 2.设计思路 A.我们设置两个维度:数量 和 时间,比如当从队列中获取的数量达到200条的时候提交 或者 2s提交一次(但必须有数据) B.EFCore默认提交大数据量可能
阅读全文
摘要:一. Lua简介 1. 介绍 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 该章节主要是Redis调用Lua脚本。 2. 好处 (1). 减少网络开销:本来多次网络请求的操作,可以用一个请求完成,原先
阅读全文
摘要:一. 单品限流 1. 含义 某件商品n秒内只接受m个请求, 比如:限制商品A在2s内只接受500个下单请求。 2.设计思路 利用Redis自增的Api,该商品的第一个请求进来的时候设置缓存过期时间,限制内正常走业务,限制外返回限流提示;时间到了,原缓存内容消失,下一次第一个请求进来重新设置过期时间
阅读全文
摘要:一. 小白写法 1.设计思路 纯DB操作 DB查库存→判断库存→(DB扣减库存+DB创建订单) 2.分析 A.响应非常慢,导致大量请求拿不到结果而报错 B.存在超卖现象 C.扣减库存错误 3.压测结果 前提:原库存为10000,这里统计2s内可处理的并发数,以90%百分位为例,要求错误率为0。 代码
阅读全文
摘要:一. 基本概念 1.QPS(Queries Per Second) A. 指每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。 B. 是数据库中的概念,每秒执行条数(查询),被引申到压测中来了,但是不包括插入、更新、删除操作,所以不建议用qps来描述系统整体的性能
阅读全文
摘要:一. CAP框架异常处理 1. RabbitMQ宕机 (1).模拟场景 直接把RabbitMq服务关闭,然后发送5次请求,会发现Published表中多了5条数据!!!!Received表中没有数据;然后打开RabbitMq服务,观察现象,仔细观察Published表,有3条记录已经重试了3次,是F
阅读全文
摘要:一. DotNet Core环境安装 1. 准备 (1). 宿主机:centos stream 9.0 (2). 运行时:ASP.NET Core Runtime PS:如果要开发 .NET 应用,请安装 SDK(包括了运行时)。 如果只需运行应用程序,只需要安装运行时。 如果要安装该运行时,建议安
阅读全文
摘要:一. Redis的安装 1. 准备 (1). 宿主机:centos 8.0 (2). Redis源码:【压缩包: redis-5.0.0.tar.gz】 需要自行编译。 (PS:这个压缩包可以直接Centos系统中在线下载 或者去Redis官网先下载,然后copy到Centos系统中) 下载地址:
阅读全文
摘要:一. CAP框架简介 1. 什么是事件总线? 事件总线(EventBus)是一种机制,它允许不同的组件彼此通信而不彼此了解。 组件可以将事件发送到Eventbus,而无需知道是谁来接听或有多少其他人来接听。组件也可以侦听Eventbus上的事件,而无需知道谁发送了事件。 这样,组件可以相互通信而无需
阅读全文

浙公网安备 33010602011771号