计算机题库分享

Redis 核心概念

Redis 核心概念

【2021/2/8 14:18:19】 Redis 与其他 key – value 缓存产品有以下三个特点:2. 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。3. 原子 – Redis的所有操作都是原子性的,同时Redis

阅读
MySQL EXPLAIN 详解

MySQL EXPLAIN 详解

【2021/2/8 14:18:19】 MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。id是用来顺序标识整个查询中SELELCT 语句的,在嵌套查询中id越大的语句越先执行。该值可能为NULL,如果这一行用来说明的是其他行的联合结果。表示查询的类型对应行正在访问哪一个表,

阅读
数据库压缩技术探索

数据库压缩技术探索

【2021/2/8 14:18:19】 作为数据库,在系统资源(CPU、内存、SSD、磁盘等)一定的前提下,我们希望:几乎所有压缩算法都严重依赖上下文:传统数据库中的块压缩技术对于普通的以数据块/文件为单位的压缩,传统的(流式)数据压缩算法工作得不错,时间长了,大家也都习惯了这种数据压缩的模式。基于这种模式的数据压缩算法层出不穷,不断有新

阅读
DotNet Core 多平台开发体验

DotNet Core 多平台开发体验

【2021/2/8 14:18:19】 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项目,然后通过源码管理签出到另一个平台上继续开发。还有就是一次编译到处运行是如何体现的?这样类型的文章好像还

阅读
C# OOP:继承,接口和抽象类

C# OOP:继承,接口和抽象类

【2021/2/8 14:18:19】 在现实生活中有所谓的“种瓜得瓜、种豆得豆”的说法,在生物学概念上就是“遗传”的概念,在面向对象中“继承”就类似于生物学中的遗传,通过继承,可以更好的实现代码的重用(复用,多次使用的意思)、增加扩展性、简化代码等。下面是现实生活中的引用:定义与使用继承继承一次最常用的就是通过合法程序(比如遗嘱)从别人

阅读
C#多线程之旅(3):线程池

C#多线程之旅(3):线程池

【2021/2/8 14:18:19】 先交代下背景,写《C#多线程之旅》这个系列文章主要是因为以下几个原因:1.多线程在C/S和B/S架构中用得是非常多的;2.而且多线程的使用是非常复杂的,如果没有用好,容易造成很多问题。多线程,有利也有弊,使用需谨慎。C#多线程之旅(1)——介绍和基本概念C#多线程之旅(2)——创建和开始线程C#多线

阅读
代码写的好,出过畅销书,还拿过赛车冠军,这是一种什么体验?

代码写的好,出过畅销书,还拿过赛车冠军,这是一种什么体验?

【2021/2/8 14:18:19】 问:代码写的好,出过畅销书,并且还拿过赛车冠军,这是一种什么体验?答:这事得问 DHH。什么?你不知道 DHH 是哪个程序员,那你更得看看这篇文章了。😀(ps:以前伯乐在线扩散《我是小有成就,但我过不了白板面试》这篇文章时,曾有读者问 DHH 是何许人也。)DHH 是一个丹麦程序员,

阅读
树形结构数据存储方案(一):邻接列表模式

树形结构数据存储方案(一):邻接列表模式

【2021/2/8 14:18:19】 在程序开发中,我们常遇到用树型结构来表示某些数据间的关系,如企业的组织架构、商品的分类、操作栏目等,目前的关系型数据库都是以二维表的形式记录存储数据,而树型结构的数据如需存入二维表就必须进行Schema设计。最近对此方面比较感兴趣,专门做下梳理,如下为常见的树型结构的数据:其中最简单的方法是:Adj

阅读
Nginx 缓存引发的跨域惨案

Nginx 缓存引发的跨域惨案

【2021/2/8 14:18:19】 贵金属wap版直播间上线后,偶尔有用户反馈,在进入wap直播间的时候,出现空白页面,但是重新刷新又可以正常显示了。我们曾一度认为是网络请求异常或兼容问题,直到开发PC版直播间,在进行调试中,同样遇到了“白屏”问题,才引起了足够重视,并进行了问题跟踪与分析。现在跟大家分享一下,这种偶然现象出现的原因。

阅读
Neo4j 图数据库基础

Neo4j 图数据库基础

【2021/2/8 14:18:19】 在这个三篇系列文章的第一篇文章中,我们将学习图数据库(graph database)的基础知识,它支持了这地球上最大的一些数据池。对于海量的各种非结构化信息来说,图数据库已经成为帮助收集、管理和搜索大量数据的技术。在这三篇系列文章中,我们将使用开源图数据库软件 Neo4j 来研究图数据库。在本文中,

阅读
MySQL 死锁与日志二三事

MySQL 死锁与日志二三事

【2021/2/8 14:18:18】 最近线上 MySQL 接连发生了几起数据异常,都是在凌晨爆发,由于业务场景属于典型的数据仓库型应用,白天压力较小无法复现。甚至有些异常还比较诡异,最后 root cause 分析颇费周折。那实际业务当中咱们如何能快速的定位线上 MySQL 问题,修复异常呢?下文我会根据两个实际?case,分享下相关

阅读
MySQL 高性能表设计规范

MySQL 高性能表设计规范

【2021/2/8 14:18:18】 良好的逻辑设计和物理设计是高性能的基石, 应该根据系统将要执行的查询语句来设计schema, 这往往需要权衡各种因素。MySQL支持的数据类型非常多, 选择正确的数据类型对于获得高性能至关重要。更小的数据类型通常更快, 因为它们占用更少的磁盘、 内存和CPU缓存, 并且处理时需要的CPU周期也更少。

阅读
树形结构数据存储方案(四):左右值编码

树形结构数据存储方案(四):左右值编码

【2021/2/8 14:18:18】 在基于数据库的一般应用中,查询的需求总要大于删除和修改。为了避免对于树形结构查询时的“递归”过程,基于Tree的前序遍历设计一种全新的无递归查询、无限分组的左右值编码方案,来保存该树的数据。第一次看见这种表结构,相信大部分人都不清楚左值(Lft)和右值(Rgt)是如何计算出来的,而且这种表设计似乎并

阅读
树形结构数据存储方案(三):闭包表

树形结构数据存储方案(三):闭包表

【2021/2/8 14:18:18】 将Closure Table翻译成闭包表不知道是否合适,闭包表的思路和物化路径差不多,都是空间换时间,Closure Table,一种更为彻底的全路径结构,分别记录路径上相关结点的全展开形式。能明晰任意两结点关系而无须多余查询,级联删除和结点移动也很方便。但是它的存储开销会大一些,除了表示结点的Me

阅读
树形结构数据存储方案(五):区间嵌套

树形结构数据存储方案(五):区间嵌套

【2021/2/8 14:18:18】 前面的一篇文章介绍了左右值编码,不知道大家注意到了没有,如果数据庞大,每次更新都需要更新差不多全表,效率较低没有更好的方式?今天我们就来研究下区间嵌套法。区间嵌套法原理如果节点区间[clft, crgt]与[plft, prgt]存在如下关系:plft <= clft and crgt &gt

阅读
使用 Redis 解决“树”形数据的复杂查询

使用 Redis 解决“树”形数据的复杂查询

【2021/2/8 14:18:18】 最近因业务需要,研究了一下树数据结果的存储及查询解决方案。 最初的想法是使用neo4j,可是在网上看了一下开源的不支持集群,感觉用的人不多。网上也查了一些 树形结构数据存储方案 但每种实现方案都有它的一定局限性。想了一短时间后,想出了下面的方案:一、 因为复杂的查询都由Redis来处理,所以数据库表

阅读
反转技术面试!还有这样的操作?

反转技术面试!还有这样的操作?

【2021/2/8 14:18:18】 假想面试的时候用 Clojure 做题,狠狠地鄙视了一下不懂 Clojure、且高傲无知的面试官,然后潇洒地离去。如果你打算找一份程序员的工作,那么你必须要通过白板面试。 作为工程师,模拟白板面试也经常是我们早上例行公事的一部分,同时还需要在星光层(astral plane)上打开一个漂亮的网格状的

阅读
MySQL 进行 Replace 操作时造成数据丢失——那些坑你踩了吗?

MySQL 进行 Replace 操作时造成数据丢失——那些坑你踩了吗?

【2021/2/8 14:18:18】 公司开发人员在更新数据时使用了 replace into 语句,由于使用不当导致了数据的大量丢失,到底是如何导致的数据丢失?现分析如下。REPLACE INTO 原理的官方解释为:REPLACE works exactly like INSERT, except that if an old row

阅读
WebAPI的一种单元测试方案

WebAPI的一种单元测试方案

【2021/2/8 14:18:18】 大家是如何对webApi写测试的呢? 1.利用Fiddler直接做请求,观察response的内容。 2.利用Httpclient做请求,断言response的内容。 3.直接调用webApi的action,这种方式的测试跟真实的调用还是有一定差距,不够完美。接下来我介绍一种webApi的in-me

阅读
基于 Redis 实现分布式应用限流

基于 Redis 实现分布式应用限流

【2021/2/8 14:18:18】 限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务。前几天在DD的公众号,看了一篇关于使用 瓜娃 实现单应用限流的方案,参考《redis in action》 实现了一个jedis版本的,都属于业务层次限制。 实际场景中常用的限流策略

阅读