自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Happy_wu的专栏

博主太懒,什么都不想说。。。

  • 博客(29)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 MySQL—2、B-Tree,B+Tree,聚集索引,非聚集索引

今天研究下,mysql中的B-tree索引,通过这篇文章你可以了解到,mysql中的btree索引的原理,检索数据的过程,innodb和myisam引擎中btree索引的不同,以及btree索引的好处和限制。B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 B-Tree 索引。不仅仅在 MySQL 中是如此,实际上在其他...

2018-04-26 11:21:08 1536

转载 MySQL—1、数据库索引的实现原理及查询优化

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。不同的存储引擎索引实现的数据结构不同MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如B-Tree索引,哈希索引,全文索引等,主要存储引擎有MyISAM、InnoDB、MEMORY和ME...

2018-04-26 10:19:53 846

转载 Redis技能—1.Redis分布式锁(正确版注意)

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足...

2018-04-25 17:46:09 400

原创 2018面试——8.设计模式专题

不知道大家有木有遇到手写设计模式的情况,反正楼主遇到了,这东西一段时间不看还真想不起来。1、写一下单例模式2、写一下工厂模式3、写一下代理模式4、写一下装饰者模式5、写一下模板模式...

2018-04-25 16:26:45 442

原创 2018面试——7.Linux-Nigx专题

2018-04-25 16:23:54 290

原创 2018面试——6.Zookeeper专题

1、有了解过zookeeper吗?讲一下你对分布式事物的理解?如果要你实现分布式事务你怎么做?2 、如何用zookeeper实现分布式锁的?  3、分布式一致性是啥?原理?几种实现的优缺点4、zk的选主过程,脑裂问题如何解决...

2018-04-25 16:23:06 464

原创 2018面试——4.JVM&多线程&锁

1、聊一下垃圾收集器,如果对象太大会在哪里分配内存? 垃圾收集器主要    CMS垃圾收集器与G1收集器2、创建线程池有几种方法?其中一个最大线程数参数是做什么的?Java线程池的分析和使用美团线程池面试题3、内置锁的实现原理synchronized?原理4、notify的实现原理是什么?跟park unpark有什么区别通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程display...

2018-04-25 16:20:35 334

原创 2018面试——3.Spring专题

原 spring原理-1.Spring Bean的生命周期原 spring原理-2.spring容器的启动过程原 spring原理-3.spring的循环依赖是怎么解决的:Spring循环依赖的三种方式原 spring原理-4.spring异常处理的三种方式原 spring原理-5.Spring 中异常处理方法的总结...

2018-04-25 16:19:23 744

原创 2018面试——2.Mysql专题

1、MySQL存储引擎知道吧?SQL 的优化说一下?所涉及到的数据结构?数据库索引的实现原理及查询优化2、B-Tree,B+Tree,聚集索引,非聚集索引?B-Tree,B+Tree,聚集索引,非聚集索引3、MySQL的分库分表了解吗?用过吗?分库分表欢迎留言补充,楼主也会逐步完善!...

2018-04-25 16:18:43 1265

原创 2018面试——1.Redis专题

问题是多变的,但是知识点是不变的,而且是相互连通的。所以掌握了知识点融会贯通才能以不变应万变。融合往往在脑子里进行,楼主尽量通过遇到的面试题来把他们串起来。1、Redis有那些数据结构?你用过哪些?(这算是很普通的一个问题切入方式了)Redis的数据结构(包含了跳表的实现)用过的数据结构:字符串String,SortedSet。String的应用场景:作为字典key-value的形式存储,业务场景...

2018-04-25 16:17:53 499

原创 Redis技能—1.Redis分布式锁(这里介绍的方法居然是错误的)

使用过Redis分布式锁么,它是什么回事?(这里介绍的这两种方式其实在原子性方面都存在这漏洞:正确解法)先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。这时候对方会告诉你说你回答得不错,然后接着问如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样?这时候你要给予惊讶的反馈:唉,是喔,这个锁就永远得不到释放了。紧接着你需要抓一...

2018-04-23 19:04:40 774

原创 spring原理-5.Spring 中异常处理方法的总结

前言在编程过程中,我们总是会遇到各种各样的一样,受检异常和非受检异常,也可以对这些异常进行重写或者扩展,总而言之,这就涉及到一个处理异常的问题。好的异常处理方式既容易配置又可以保持使用端的友好交互,更为重要的是在出现问题的时候快速的帮助我们定位问题。事实上,对代码的理解很总要,这样你就知道什么时候应该抛出什么异常了,比如数组越界,文件过大,栈越界,连接超时这些标准异常,等等。当然,在什么时候抛出什...

2018-04-23 19:04:23 318

原创 spring原理-4.spring异常处理的三种方式

Spring 统一异常处理有 3 种方式,分别为:使用 @ ExceptionHandler 注解实现 HandlerExceptionResolver 接口使用 @controlleradvice 注解使用 @ ExceptionHandler 注解使用该注解有一个不好的地方就是:_进行异常处理的方法必须与出错的方法在同一个Controller里面。使用如下: 1 @Controller ...

2018-04-23 19:04:12 1091

原创 spring原理-3.spring的循环依赖是怎么解决的:Spring循环依赖的三种方式

引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错。下面说一下Spring是如果解决循环依赖的。第一种:构造器参数循环依赖Spring容器会将每一个正在创建的Bean 标识符放在一个“当前创建Bean池”中,Bean标识符在创建过程中将一直保持在这个池中,因此如果在创建Bean过程中发现自己已经在“当前创...

2018-04-23 19:04:04 710

原创 spring原理-2.spring容器的启动过程

要想很好理解这三个上下文的关系,需要先熟悉spring是怎样在web容器中启动起来的。spring的启动过程其实就是其IoC容器的启动过程,对于web程序,IoC容器启动过程即是建立上下文的过程。spring的启动过程:首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境;其...

2018-04-23 19:03:53 999

原创 spring原理-1.Spring Bean的生命周期

作者:大闲人柴毛毛链接:https://www.zhihu.com/question/38597960/answer/247019950来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Bean的生命周期其实是与spring容器的初始化过程相互衔接的。(更多内容可以参考以上知乎链接)对于普通的Java对象,当new的时候创建对象,当它没有任何引用的时候被垃圾回收机制回收...

2018-04-23 19:03:45 731

原创 Redis技能—Redis的集群:集群的分片

分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。分片能做什么Redis 的分片承担着两个主要目标:允许使用很多电脑的内存总和来支持更大的数据库。没有分片,你就被局限于单机能支持的内存容量。允许伸缩计算能力到多核或多服务器,伸缩网络带宽到多服务器或多网络适配器。分片方式(多种)有很多不同的分片标准(criteria)。我们能找到许多...

2018-04-23 18:07:31 3396

原创 Redis技能—Redis的持久化

Redis如何做持久化的?bgsave做镜像全量持久化,aof做增量持久化。因为bgsave会耗费较长时间,不够实时,在停机的时候会导致大量丢失数据,所以需要aof来配合使用。在redis实例重启时,会使用bgsave持久化文件重新构建内存,再使用aof重放近期的操作指令来实现完整恢复重启之前的状态。对方追问那如果突然机器掉电会怎样?取决于aof日志sync属性的配置,如果不要求性能,在每条写指令...

2018-04-23 17:44:43 950

转载 IO多路复用—由Redis的IO多路复用yinch

linux IO多路复用有epoll, poll, select,epoll性能比其他几者要好。名词比较绕口,理解涵义就好。一个epoll场景:一个酒吧服务员(一个线程),前面趴了一群醉汉,突然一个吼一声“倒酒”(事件),你小跑过去给他倒一杯,然后随他去吧,突然又一个要倒酒,你又过去倒上,就这样一个服务员服务好多人,有时没人喝酒,服务员处于空闲状态,可以干点别的玩玩手机。至于epoll与...

2018-04-23 16:56:40 18103 6

转载 Redis技能—底层IO多路复用

这是网上找到的比较全的Reids IO多路复用资料,此部分其实和Redis的键失效机制有一定的衔接。最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首...

2018-04-23 16:00:13 2603

原创 Redis技能—2.Redis分布式锁(redis的key过期的实现)

上一篇文章介绍了Redis的分布式锁,主要是运用Redis的key失效机制来避免死锁问题的出现。这篇文章就来介绍一下Redis的Key过期实现。参看另一篇文章:https://blog.csdn.net/Happy_wu/article/details/79695415...

2018-04-23 14:52:02 1390

原创 Redis的数据结构—2.List结构做异步队列(消息队列)

使用过Redis做异步队列么,你是怎么用的?一般使用list结构作为队列,rpush生产消息,lpop消费消息。当lpop没有消息的时候,要适当sleep一会再重试。如果对方追问可不可以不用sleep呢?list还有个指令叫blpop,在没有消息的时候,它会阻塞住直到消息到来。 如果对方追问能不能生产一次消费多次呢?使用pub/sub主题订阅者模式,可以实现1:N的消息队列。如果对方追问pub/s...

2018-04-23 11:17:17 1630

原创 4.常用数据结构-B树,B+树

B树(B-tree)注意:之前有看到有很多文章把B树和B-tree理解成了两种不同类别的树,其实这两个是同一种树;1、概念:B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构,让我们来看看他有什么特点;2、规则:(1)树种的每个节点最多拥有m个子节点且m>=2,空树除外(注:m阶代表一个树节点最多有多少个查找路径...

2018-04-20 17:16:21 417

原创 3.常用数据结构-跳表

一、什么是跳表 跳表全称叫做跳跃表,简称跳表。跳表是一个随机化的数据结构,可以被看做二叉树的一个变种,它在性能上和红黑树,AVL树不相上下,但是跳表的原理非常简单,目前在Redis和LeveIDB中都有用到。 在对有序顺序表进行搜索时,使用二分查找时间复杂度是O(logn),但是有序顺序表的插入和删除却是O(n)的算法。 在对有序链表进行搜索时,时间复杂度是O(n),但是对链表的插入算法却是O(1...

2018-04-20 17:09:19 525

原创 2.常用数据结构-AVL树

AVL树是带有平衡条件的查找二叉树。这个平衡条件要容易保持,而且他要保证树的深度为O(logN)原文地址:http://blog.csdn.net/qq_25806863/article/details/74755131平衡条件一个最理想的平衡条件是左右两个子树的高度完全相等,但只有节点数量为2^n-1的树才满足这个条件(n是层数,2层要3个,3层要7个)。这个条件太严格,不好用。如果只要求根节点...

2018-04-20 17:02:32 212

原创 1.常用数据结构-红黑树

R-B Tree简介    R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。要想了解红黑树,不防先自己建一个红黑树:https://www.cs.usfca.edu/~galles/visualization/RedBlack.html红黑树的特性:(1)每个节点或者是...

2018-04-20 16:27:19 278

转载 红黑树、B(+)树、跳表、AVL等数据结构,应用场景及分析

在网上学习了一些材料。这一篇:https://www.zhihu.com/question/30527705AVL树:最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树红黑树:平衡二叉树,广泛用在C++的STL中。map和set都是用红黑树实现的。我们熟悉的STL的map容器底层是RBtree,当然指的不是unordered_

2018-04-20 16:01:33 661

原创 写接口时需要用到的几个注解

public String index(@RequestParam(value = "action", required = false)      String action, @RequestParam(value = "notIncludeTypeId", required = false)      int notIncludeTypeId){  @PathParam     @Query...

2018-04-16 18:19:27 2075

原创 Redis的数据结构—1.简单介绍,序集合SortedSet的实现,跳表的实现

Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。有序集SortedSet算是redis中一个很有...

2018-04-09 14:44:47 2683

实验六 SQL 语句综合训练

实验六 SQL 语句综合训练 三个综合训练都有, 综合练习一 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。现要建立关于系、学生、班级的数据库,关系模式为: 综合练习二 有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员(运动员编号,运动员姓名,运动员性别,所属系名) 项目(项目编号,项目名称 综合练习三 现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成: 商品(商品号,商品名,单价,商品类别,供应商); 顾客(顾客号,姓名,住址);

2012-06-10

实验五 SQL SERVER 完整性与安全性

一、实验目的 掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。

2012-06-10

实验四 数据更新与视图

1.数据更新基本语句及其格式 (1)插入操作 SQL的数据插入语句INSERT有两种形式: ① 插入单个元组,使用命令: INSERT INTO 基本表名 (列名表) VALUES (元组) ② 插入子查询的结果: INSERT INTO 基本表名(列表名) 查询语句 (2)修改操作

2012-06-10

实验三 数据库

查询语句的基本格式如下: SELECT <目标列名序列> --需要哪些列 FROM <数据源> --来自于哪些表 [WHERE <检索条件>] --根据什么条件 [GROUP BY <分组依据列>] --分组 [HAVING <组提取条件>] --筛选 [ORDER BY <排序依据列>] --排序 实验内容

2012-06-10

数据库 定义

一、实验目的 1、掌握使用SQL语句创建和删除数据库; 2、掌握使用SQL语句创建和删除数据表,创建各种完整性约束,修改表的结构; 3、掌握索引的创建和删除方法。 二、预备知识 1、数据库的建立与删除 可以使用SQL语句建立数据库,语句格式为:

2012-06-10

数据库实验报告

一、实验目的 1、了解SQL SERVER 2008的安装过程中的关键问题; 2、掌握通过SQL Server Management Studio管理数据库服务器、操作数据库对象的方法; 3、掌握数据库的还原与备份操作。

2012-06-10

五子棋程序C语言数据结构

用C语言实现的一段代码,是从老师那得来的,可能在TC下运行会更好。

2011-07-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除