会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
奔跑的路上
广泛汲取,用心打磨,精益求精。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
11
12
13
14
15
16
17
18
19
···
26
下一页
2020年11月22日
第七节:MySQL之Create、Update、Insert、Delete等指令详解(DB、表、视图、索引)
摘要: 一. DB级别 1. 创建数据库 2. 配置数据库相关参数 3. 查看创建的数据库 4. 查看已有的数据库 show databases; 5. 修改数据库属性 alert database; 6. 删除数据库 drop database 二. 表级别 1. 普通表 (1). 普通创建 create
阅读全文
posted @ 2020-11-22 10:06 Yaopengfei
阅读(629)
评论(0)
推荐(0)
2020年11月19日
第十九节:EFCore5.0基于【Pomelo.EntityFrameworkCore.MySql】和【MySql.EntityFrameworkCore】连接MySQL各场景测试
摘要: 一. 说明 1. 环境准备 (1).测试载体:.Net 5.0 控制台 (2).数据库:MySQL 5.7 (事先改为大小写敏感 lower_case_table_names=0) (3).EFCore相关程序集:(这里统一用5.0.6 版本) Microsoft.EntityFrameworkCo
阅读全文
posted @ 2020-11-19 11:53 Yaopengfei
阅读(4549)
评论(9)
推荐(4)
2020年11月18日
第六节:MySQL字符集和排序规则详解
摘要: 一. 相关概念 1. 字符集 MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL实例的交互相关,排序规则和字符串的对比规则相关 (1). 字符集的设置可以在MySQL实例、数据库、表、列四个级别 (2). MySQL设置字符集支持在InnoDB, MyISAM,
阅读全文
posted @ 2020-11-18 07:49 Yaopengfei
阅读(1757)
评论(1)
推荐(0)
2020年11月16日
第五节:MySQL的数据类型和存储引擎介绍
摘要: 一. MySQL数据类型 1. 整数类型 注:MySQL可以为整数类型指定宽度,比如 int(3)、int(5),这个限制不是限制value的合法范围,所以对绝大数应用没有任何意义,对于存储而言,int(3) 和 int(5) 是相同的,只是对一些MySQL的交互工具显式字符的个数有用,如mysql
阅读全文
posted @ 2020-11-16 07:41 Yaopengfei
阅读(266)
评论(2)
推荐(0)
2020年11月14日
第四节:MySQL的备份和恢复详解
摘要: 一. 简介 1. 备份分类 备份类型可以分为物理备份和逻辑备份两种。 (1). 物理备份:是指通过拷贝数据库文件的方式完成备份,这种备份方式适用于数据库很大,数据重要且需要快速恢复的数据库。 (2). 逻辑备份:是指通过备份数据库的逻辑结构(create database/table语句) 和 数据
阅读全文
posted @ 2020-11-14 20:42 Yaopengfei
阅读(603)
评论(1)
推荐(0)
2020年11月12日
第三节:MySQL的授权和认证详解(指令+客户端)
摘要: 一. 简介 1. MySQL权限 权限系统的作用是授予来自某个主机的某个用户可以查询、插入、修改、删除等数据库操作的权限。 (1). 不能明确的指定拒绝某个用户的连接。 (2). 权限控制(授权与回收)的执行语句包括create user, grant, revoke。 (3). 授权后的权限都会存
阅读全文
posted @ 2020-11-12 07:47 Yaopengfei
阅读(1197)
评论(1)
推荐(0)
2020年11月10日
MySQL深度剖析系列【完结】
摘要: 一. 整体介绍 1. 背景和工具介绍 (1). MySQL的地位 MySQL 在整个数据库图谱中占有非常重要的地位。据全球著名分析公司 Gartner 提供的数据,已有超过 63% 的用户已经部署或者将要部署 MySQL。 目前国内大部分互联网公司都选择 MySQL 数据库来支撑自己的业务,例如,你
阅读全文
posted @ 2020-11-10 21:35 Yaopengfei
阅读(1394)
评论(3)
推荐(1)
2020年11月9日
第十一节:Redis6.0新特性、剖析线程模型(单线程和多线程)
摘要: 一. Redis6.0 新特性 1. 多线程IO redis6.0引入多线程IO,只是用来处理网络数据的读写和协议的解析,而执行命令依旧是单线程,所以不需要去考虑set/get、事务、lua等的并发问题。(详细的线程模型见后面) 多线程IO的性能提升测试可参考:https://zhuanlan.zh
阅读全文
posted @ 2020-11-09 09:30 Yaopengfei
阅读(3834)
评论(2)
推荐(1)
2020年11月7日
第十节:Redis 脚本、Lua语法学习、以及秒杀案例脚本分析
摘要: 一. Redis脚本 1. 简介 从 Redis 2.6.0 版本开始,通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值。在lua脚本中可以通过两个不同的函数调用redis命令,分别是:redis.call() 和 redis.pcall() (1). 脚本的原子性 Re
阅读全文
posted @ 2020-11-07 18:22 Yaopengfei
阅读(4330)
评论(1)
推荐(0)
2020年11月4日
第九节:Redis的Bloom Filter原理、实操、以及应用场景(缓存穿透、黑名单校验等)详解
摘要: 一. Bloom Filte介绍 1. 含义 (1). 布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它实际上是由一个很长的二进制(0或1)向量和一系列随机映射函数组成。 (2). 布隆过滤器可以用于检索一个元素是否在一个集合中。它
阅读全文
posted @ 2020-11-04 20:48 Yaopengfei
阅读(5839)
评论(4)
推荐(1)
2020年11月3日
第八节: Redis事务、pub/sub、PipeLine-管道、benchmark性能测试详解
摘要: 一. 事务 1. 概念补充 (1). 原子性 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 2. redis事务说明 Redis的事务并
阅读全文
posted @ 2020-11-03 20:20 Yaopengfei
阅读(1642)
评论(3)
推荐(1)
2020年10月29日
第十二节:Redis面试专题总结版(持续更新)
该文被密码保护。
阅读全文
posted @ 2020-10-29 21:10 Yaopengfei
阅读(21)
评论(1)
推荐(0)
2020年10月27日
第五节:Redis架构演变之主从、Sentinel哨兵、Cluster(通信、分片、路由等机制)
摘要: 一. 主从复制 1. 含义 在分布式系统中,为了解决单点问题,通常会把数据复制多个副本到其它机器,满足故障恢复和负载均衡等要求,Redis也是如此,提供了主从复制功能。(redis第一代架构) 实质:一个主服务器(master)对应多个从服务器(slave),主从之间实现数据同步,主服务器负责【写】
阅读全文
posted @ 2020-10-27 14:24 Yaopengfei
阅读(2042)
评论(4)
推荐(1)
2020年10月26日
第四节:Redis数据持久化机制(备份恢复)、缓存淘汰策略、主从同步原理、常见规范与优化详解
摘要: 一. 数据持久化 1. 含义 Redis 提供了 RDB 和 AOF 两种持久化方式,默认开启的是RDB,如果需要AOF,需要手动修改配置文件进行开启。 RDB:是一种对Redis存在内存中的数据周期性的持久化机制,将内存中的数据以快照的形式硬盘,实质上是fork了一个子进程在执行数据存储,采用的是
阅读全文
posted @ 2020-10-26 16:15 Yaopengfei
阅读(1956)
评论(5)
推荐(1)
第三节:Redis缓存雪崩、击穿、穿透、双写一致性、并发竞争、热点key重建优化、BigKey的优化 等解决方案
摘要: 一. 缓存雪崩 1. 含义 同一时刻,大量的缓存同时过期失效。 2. 产生原因和后果 (1). 原因:由于开发人员经验不足或失误,大量热点缓存设置了统一的过期时间。 (2). 产生后果:恰逢秒杀高峰,缓存过期,瞬间海量的QPS(每秒查询次数)直接打到DB上,如果系统架构没有熔断机制,直接将导致系统全
阅读全文
posted @ 2020-10-26 13:54 Yaopengfei
阅读(1864)
评论(4)
推荐(1)
2020年10月25日
第二节:Redis数据类型、使用场景、常用指令剖析
摘要: 一. String 1. 数据类型介绍 典型的Key-Value集合,不少人喜欢用来存实体,需要序列化成字符串,获取的时候需要反序列化一下。(还是建议合理选择redis的数据结构,而不是万物都用string) 2. 应用场景 (1). 缓存 string类型最简单的一个应用就是Key-value缓存
阅读全文
posted @ 2020-10-25 19:22 Yaopengfei
阅读(1129)
评论(5)
推荐(0)
2020年10月24日
Redis深度剖析系列【二次重构】
摘要: 一. Redis整体介绍 1. NOSQL介绍 1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。 随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SN
阅读全文
posted @ 2020-10-24 19:15 Yaopengfei
阅读(1678)
评论(3)
推荐(1)
第一节:Redis的安装使用(Linux、docker、win) 和 目录配置详解
摘要: 一. Redis安装和连接 1. 下载地址 官网:https://redis.io/ 官网-中文:http://www.redis.cn/ Linux下载地址:https://download.redis.io/releases/ Windows下载地址:https://github.com/Mic
阅读全文
posted @ 2020-10-24 15:57 Yaopengfei
阅读(1532)
评论(1)
推荐(2)
2020年10月22日
第六节:Redis Cluster搭建详解和集群运维(节点、槽位等)
摘要: 一. Cluster搭建 1. 事先准备 (1). 服务器环境:Centos8 (2). Redis环境:安装redis5.0版本 PS: 在redis 5.0之前,redis cluster的搭建需要借助Ruby环境,使用redis-trib指令进行集群的管理,redis5.0以后,redis已经
阅读全文
posted @ 2020-10-22 09:44 Yaopengfei
阅读(3066)
评论(2)
推荐(1)
2020年10月21日
第七节:Nginx限流和负载均衡、页面cdn、IIS部署优化、后续计划
摘要: 一. Nginx限流和负载均衡 1. 限流 可以ip限流或者限制总请求数。防止大量恶意请求,通过nginx的ip限制处理 1秒1个ip只能请求一次,但也有弊端,比如多个人在同一个ip下,容易误杀,所以看怎么取舍了. 参考代码: #user nobody; worker_processes 1; #e
阅读全文
posted @ 2020-10-21 13:43 Yaopengfei
阅读(1513)
评论(0)
推荐(1)
2020年10月18日
第六节:基于Cap框架引入事件总线机制(RabbitMQ+SQLServer) 和 下单成功后的方案剖析
摘要: 一. 事件总线机制 1. 业务改造 引入时间总线的概念,采用CAP框架进行业务处理,同时利用RabbitMQ代替Redis队列,采用SQLServer进行本地消息表的存储, 采用 推模式 发送消息,我们习惯称之为 发布-订阅 模式。 关于基于CAP框架实现事件总线,详见: https://www.c
阅读全文
posted @ 2020-10-18 20:17 Yaopengfei
阅读(1700)
评论(4)
推荐(2)
第五节:拉模式的消费者优化(数量块和时间块)
摘要: 一. 前言 1.背景 最初版本的消费者一条一条获取,然后创建订单扣减库存,非常慢,我们希望在保证消费顺序的情况下提升消费速度。 2.设计思路 A.我们设置两个维度:数量 和 时间,比如当从队列中获取的数量达到200条的时候提交 或者 2s提交一次(但必须有数据) B.EFCore默认提交大数据量可能
阅读全文
posted @ 2020-10-18 20:12 Yaopengfei
阅读(815)
评论(3)
推荐(1)
2020年10月16日
第四节:抢单流程优化3(lua整合限流、购买限制、方法幂等、扣减库存)
摘要: 一. Lua简介 1. 介绍 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 该章节主要是Redis调用Lua脚本。 2. 好处 (1). 减少网络开销:本来多次网络请求的操作,可以用一个请求完成,原先
阅读全文
posted @ 2020-10-16 14:55 Yaopengfei
阅读(2460)
评论(1)
推荐(2)
2020年10月14日
第三节:抢单流程优化2(单品限流→购买数量限制→方法幂等)
摘要: 一. 单品限流 1. 含义 某件商品n秒内只接受m个请求, 比如:限制商品A在2s内只接受500个下单请求。 2.设计思路 利用Redis自增的Api,该商品的第一个请求进来的时候设置缓存过期时间,限制内正常走业务,限制外返回限流提示;时间到了,原缓存内容消失,下一次第一个请求进来重新设置过期时间
阅读全文
posted @ 2020-10-14 20:51 Yaopengfei
阅读(2249)
评论(1)
推荐(1)
第二节:抢单流程优化1(小白写法→lock写法→服务器缓存+队列(含lock)→Redis缓存+原子性+队列【干掉lock】)
摘要: 一. 小白写法 1.设计思路 纯DB操作 DB查库存→判断库存→(DB扣减库存+DB创建订单) 2.分析 A.响应非常慢,导致大量请求拿不到结果而报错 B.存在超卖现象 C.扣减库存错误 3.压测结果 前提:原库存为10000,这里统计2s内可处理的并发数,以90%百分位为例,要求错误率为0。 代码
阅读全文
posted @ 2020-10-14 13:33 Yaopengfei
阅读(3077)
评论(3)
推荐(3)
2020年10月10日
第一节:基本概念、业务分析、单体架构的搭建
摘要: 一. 基本概念 1.QPS(Queries Per Second) A. 指每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。 B. 是数据库中的概念,每秒执行条数(查询),被引申到压测中来了,但是不包括插入、更新、删除操作,所以不建议用qps来描述系统整体的性能
阅读全文
posted @ 2020-10-10 10:18 Yaopengfei
阅读(2196)
评论(9)
推荐(1)
2020年10月7日
第十六节:CAP框架异常处理、实现分布式事务(最终一致性) 及 其它用法
摘要: 一. CAP框架异常处理 1. RabbitMQ宕机 (1).模拟场景 直接把RabbitMq服务关闭,然后发送5次请求,会发现Published表中多了5条数据!!!!Received表中没有数据;然后打开RabbitMq服务,观察现象,仔细观察Published表,有3条记录已经重试了3次,是F
阅读全文
posted @ 2020-10-07 09:27 Yaopengfei
阅读(2073)
评论(11)
推荐(2)
2020年10月4日
第七节:Centos系统安装.Net Core环境、部署WebApi8.0项目、WebApi8.0项目发布为服务、使用Nginx反向代理
摘要: 一. DotNet Core环境安装 1. 准备 (1). 宿主机:centos stream 9.0 (2). 运行时:ASP.NET Core Runtime PS:如果要开发 .NET 应用,请安装 SDK(包括了运行时)。 如果只需运行应用程序,只需要安装运行时。 如果要安装该运行时,建议安
阅读全文
posted @ 2020-10-04 11:01 Yaopengfei
阅读(1119)
评论(3)
推荐(0)
第六节:Linux之基于Centos系统安装Redis、MySQL、Nginx
摘要: 一. Redis的安装 1. 准备 (1). 宿主机:centos 8.0 (2). Redis源码:【压缩包: redis-5.0.0.tar.gz】 需要自行编译。 (PS:这个压缩包可以直接Centos系统中在线下载 或者去Redis官网先下载,然后copy到Centos系统中) 下载地址:
阅读全文
posted @ 2020-10-04 07:24 Yaopengfei
阅读(841)
评论(9)
推荐(0)
2020年10月3日
第十五节:CAP框架简介和基于CAP实现微服务的事件总线
摘要: 一. CAP框架简介 1. 什么是事件总线? 事件总线(EventBus)是一种机制,它允许不同的组件彼此通信而不彼此了解。 组件可以将事件发送到Eventbus,而无需知道是谁来接听或有多少其他人来接听。组件也可以侦听Eventbus上的事件,而无需知道谁发送了事件。 这样,组件可以相互通信而无需
阅读全文
posted @ 2020-10-03 09:20 Yaopengfei
阅读(3559)
评论(13)
推荐(4)
上一页
1
···
11
12
13
14
15
16
17
18
19
···
26
下一页
公告