她微笑的脸
  • 首页
  • 归档
  • 分类
  • 标签
  • 留言友链
  • 关于
数据结构-图

数据结构-图

怎么理解”图”图是是一种复杂的非线性结构。图中的每一个元素叫做顶点(vertex), 图中就有六个顶点。图中每一个一个顶点可以与任意其他顶点建立连接关系。这种建立的关系叫做边(edge)。 以微信好友举例,把每个用户看作一个顶点。如果两个用户之间互加好友,那就在两者之间建立一条边。所以,整个微信的好友关系就可以用一张图来表示。其中,每个用户有多少个好友,对应到图中,就叫做顶点的度(degre
2022-10-13
数据结构与算法
#数据结构
算法 - 二分查找

算法 - 二分查找

什么是二分查找二分查找算法,也称折半搜索算法对数搜索算法,是针对的是一个有序的数据集合中搜索的算法。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。 譬如我随机有序的写下0-9 十个数字,没猜一次我都会告诉你数值是大了还是小了,这样你就可以有效的缩小差早范围。 实现123456789101112131415func Search(nums
2022-09-15
数据结构与算法
#数据结构 #算法
数据结构 - 时间复杂分析

数据结构 - 时间复杂分析

前言时间复杂度简单来说就是一种可以粗略估计一个函数或者算法的执行效率的方法。并且它是宿主平台无关的,能够对的程序或算法有一个大致的认识,让我们知道,比如在最坏的情况下程序的执行效率如何。 既然是计算执行效率那么为什么不进行性能基准测试来衡量呢,性能测试通过统计、监控,就能得到算法执行的时间和占用的内存大小。但是这种测试一般都是代码开发结束后。且有一定的局限性。 非常依赖环境,在不同的环境中得到的
2022-09-01
数据结构与算法
#数据结构 #算法
gRPC 拦截器

gRPC 拦截器

前言gRPC 的拦截器类似 .NET Core 中的中间件和过滤器,是AOP的的一种实现方式,非常适合做一些与业务无关的处理,譬如错误处理、日志记录、身份验证等。 拦截器类型要自定义拦截器就必须继承 Interceptor 抽象类。它是所有拦截器的基类,它定义了几个可以重写的虚方法。 拦截器可以分为 一元拦截器 和 流式拦截器,或者 客户端拦截器 和 服务端拦截器。
2022-08-25
.NetCore
#.NetCore
HttpClient 实践

HttpClient 实践

开始在 .NetCore2.1 之前只能使用 HttpClient 发起 HTTP 的各种操作,但是 HttpClient 使用中会有一些问题。 如果过于频繁的创建 HttpClient 实例 ,虽然 HttpClient 实现了 IDisposable ,但是在 HttpClient 释放后,由于 TCP 生命周期的问题的。会导致套接字资源耗尽。抛出 SocketException 异常。 如
2022-08-17
.NetCore
#.NetCore
数据库隔离级别

数据库隔离级别

四种隔离级别当数据库上有多个事务同时执行的时候,就可能出现: 脏读(dirty read) 当用户进行充值操作的时候,程序一般都需要操作几个不同的表,当时我们在修改用户余额后,用户查询了自己余额,发现余额已经变更,但是程序后面的操作出现了异常,开启了回滚,这时候用户又发现自己的余额没有变更。这时候用户就出现了脏读,当时修改完用户余额时候事务并没有提交,而继续在执行下面的操作,而用户就读取了未提交
2022-08-08
mysql
#mysql
缓存淘汰策略

缓存淘汰策略

前言Redis 4.0 之前一共实现了 6 种内存淘汰策略,在 4.0 之后,又增加了 2 种策略。可以按照是否会进行数据淘汰把它们分成两类: 不进行数据淘汰的策略,只有 noeviction 这一种。 会进行淘汰的 7 种其他策略。 在默认情况下(在redis3.0之前,默认是volatile-lru,在redis3.0之后(包括3.0),默认淘汰策略则是noeviction,当内存超过ma
2022-08-02
redis
#redis
如何解决缓存雪崩、击穿、穿透

如何解决缓存雪崩、击穿、穿透

缓存雪崩缓存雪崩是指大量的应用请求无法在 Redis 缓存中获取数据。紧接着,应用将大量请求发送到数据库层,导致数据库层的压力激增。 大量Key过期在某一个时间点大量缓存过期。导致所有的请求被发往数据库,这种情况可以在设置过期时间的时候可以使用一个偏移量来对过期时间进行重新计算,避免同一时间过期。 如果已经发生雪崩,可以使用服务降级来应对,当业务应用访问的是非核心数据时直接暂停从缓存中查询数据,直
2022-08-01
redis
#redis
理解async/await语法糖

理解async/await语法糖

概念什么是进程进程(Process) 进程就是一个程序的执行实例,进程包括运行中的程序和程序所使用到的内存和系统资源。进程是资源分配的最小单位。每一个进程都有自己唯一的标识 pid,pid 就是进程号。注意,进程并不等于的程序,进程只是承载着程序运行。一个进程下可以有多个线程。 什么是线程线程是操作系统能够进行运算调度的最小单位,是程序中的一个执行流,线程不占有内存空间,它包括在进程的内存空间中。
2022-07-20
.NetCore
#.NetCore
一条SQL更新语句的执行过程

一条SQL更新语句的执行过程

前言在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以这条语句就会把表 T 上所有缓存结果都清空。这也就是一般不建议使用查询缓存的原因。更新流程还涉及两个重要的日志模块,redo log(重做日志)和 binlog(归档日志)。 redolog(重做日志) redo log 是 InnoDB 独有的,是在存储引擎层的。 如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条
2022-07-16
mysql
#mysql
1…3456

搜索

Hexo Fluid
浙ICP备2021013123号-2 | police-icon 2021013123号-2