- 博客(16)
- 资源 (33)
- 收藏
- 关注
原创 Redis 6.0 为什么要引入多线程呢?
查看 Redis 版本redis-cli -vredis-cli 3.2.1Reactor 模式Redis 是基于 Reactor 模式开发了网络事件处理器,这个处理器称为文件事件处理器。组成结构为4个部分:多套接字IO 多路复用程序文件事件派发器事件处理器。一般来说 Redis 的瓶颈并不在 CPU,而在内存和网络。如果要使用 CPU 多核,可以搭建多个 Redis 实例来解决。Redis 6.0 为什么要引入多线程呢?Redis 的瓶颈并不在 CPU,而在内存和网络。可
2020-11-30 16:27:40 687
原创 LeetCode - 面试题 04.03. 特定深度节点链表
面试题 04.03. 特定深度节点链表给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。示例:输入:[1,2,3,4,5,null,7,8] 1 / \ 2 3 / \ \ 4 5 7/8输出:[[1],[2,3],[4,5,7],[8]]AC 代码:/** * Definition for a binary tree node. *
2020-11-29 10:35:32 295
原创 LeetCode-1497. 检查数组对是否可以被 k 整除
检查数组对是否可以被 k 整除给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。如果存在这样的分法,请返回 True ;否则,返回 False 。示例 1:输入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5输出:true解释:划分后的数字对为 (1,9),(2,8),(3,7),(4,6) 以及 (5,10) 。示例 2:输入:arr = [1,2,3,4,5.
2020-11-29 10:08:07 351
原创 LeetCode- 盛最多水的容器
题目连接:https://leetcode-cn.com/problems/container-with-most-water/盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线
2020-11-29 00:29:39 302
原创 Mysql数据库有几种索引
索引分类从物理上分聚簇索引非聚簇索引从逻辑角度普通索引唯一索引主键索引文本索引复合索引空间索引 :空间索引是对空间数据类型的字段上建立索引。空间数据类型有4种,分别是 GEPMETRY 、POINT、 LINESTRING 、POLYGONCREATE TABLE table name[coL name data type][unique l fulltext I spatial] [index key][index_ name ](col_name[length])[asc
2020-11-26 16:12:35 404
原创 Zookeeper 和 Eureka 区别
主要区别zookeeper的目标是一个分布式的协调系统,用于进行资源的统一管理,为了满足CP而进行设计。eureka的目标是一个服务注册发现系统,专门用于微服务的服务发现注册,按照满足AP而进行设计。ZookeeperZookeeper 是将数据一致性作为设计目标是 CP 的,不保证服务的可用性,当节点 Crash 宕机之后,需要进行 leader 选举,选举过程中,ZK 服务不可用。对服务注册发现来说, 对数据一致性要求没那么高,但是对可用性要求高, 如果从注册中心获取不到服务,会是很大的问
2020-11-26 15:13:34 1221
原创 LRU 算法实现
LRU 算法实现什么是 LRU 算法LRU是什么?按照英文的直接原义就是Least Recently Used,最近最久未使用法,它是按照一个非常著名的计算机操作系统基础理论得来的:最近使用的页面数据会在未来一段时期内仍然被使用,已经很久没有使用的页面很有可能在未来较长的一段时间内仍然不会被使用。基于这个思想,会存在一种缓存淘汰机制,每次从内存中找到最久未使用的数据然后置换出来,从而存入新的数据!它的主要衡量指标是使用的时间,附加指标是使用的次数。在计算机中大量使用了这个机制,它的合理性在于优先筛选热点
2020-11-16 10:11:38 391
原创 LeetCode 572 题解
LeetCode 572 题解给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。代码实现public boolean isSubtree(TreeNode s, TreeNode t) { if(s == null && t !=null) return false; // 判断一棵树 是不是另外一棵树的子树,有三种情况
2020-11-15 20:38:50 456
原创 CAP 理论
CAP 理论CAP 是反应了分布式系统中的三个指标: Consistency (一致性), Availlability (可用性)Partion Tolerance(分区容错性)。CAP 理论的核心是说 ,C、A 、P 这三个指标不能同时做到。Consistency(一致性)指数据在多个副本之间能够保持一致的特性(严格的一致性)Availability(可用性)指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应(不保证获取的数据为最新数据)Partition toleran
2020-11-15 16:58:57 224
原创 设计模式|抽象工厂
设计模式|抽象工厂意图抽象工厂提供一个接口,用来创建相关的对象家族,而不是和工厂方法一样,创建一个对象。抽象工厂抽象工厂模式的各个角色:抽象工厂角色(Factory),工厂方法模式的核心,是具体工厂角色必须实现的接口或者必须继承父类。在 Java 类中他是抽象类或者接口来实现的。具体工厂角色(ConcreteFactory),这个是实现抽象工厂接口的具体工厂类。抽象产品角色(Product):抽象工厂模式所创建对象的基类,也就是产品对象共同父类。具体产品角色(ConcreteProduct
2020-11-14 13:17:16 262
原创 红包系统架构设计
红包系统架构设计软件系统设计,第一步,确定关键需求。需求分析比如红包这个系统,需要有如下:包红包发红包抢红包拆红包不能抢超,也就是说红包个数,金额是有限的,不能超的。支持高并发,例如1亿用户凌晨12点开始抢红包。上面的 4 方面就是关键需求。包红包:系统为每个红包设置一个 id ,然后将红包发送个用户,这里需要设置 红包金额,红包个数,要发送的用户,存储这些信息。发红包,设置完红包参数后,微信支付,完成付款,然后收到付款成功通知,红包系统更新红包订单状态,更新为已支付,并写入红
2020-11-12 17:07:48 1040
原创 设计模式|适配器
设计模式|适配器意图适配器模式的设计意图是将一个类的接口转换成希望的另外一个接口。适配器模式使得原本接口不兼容的类可以在一起工作。适配器模式分成,对象适配器和类适配器两种模式。对象适配器中, 适配器与适配者之间是关联关系,在类适配器模式中,适配器与适配者之间是继承关系。类适配器通过继承来完成适配,对象适配器则是通过关联来完成 。适配器设计模式包含哪些角色Target (目标抽象类)目标抽象类定义客户端所需接口,可以是一个抽象类或者接口,也可以具体类。Adapter(适配器类)适配
2020-11-10 11:43:27 312
原创 二分算法-LeetCode 69
二分算法-LeetCode 69二分算法二分算法模板, 二分搜索即搜索一个数,如果存在,返回其索引,否则返回-1。int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(left <= right) { // 注意 int mid = (right + left) / 2; if(nums[mid]
2020-11-08 18:09:40 304
原创 设计模式-简单工厂
设计模式-简单工厂使用工厂方法模式可以应付我们遇到的大部分需求,当产品种类变多的时候,这个时候会出现大量的工厂类,怎么解决这个问题? 可以对产品树上类似的种类使用简单工厂模式来实现。也就是说 工厂方法+简单工厂= 抽象工厂。使用设计模式,主要是为了程序的扩展性。为什么要使用工厂模式:编码时不能预见要创建哪些类的实例。系统不应该依赖产品类如何被创建,组合和表达的细节。简单工厂简单工厂只有一个工厂,也一个产品基类,不同的产品可以继承这个产品基类。简单工厂代码实现:public inter
2020-11-08 12:52:40 272
原创 设计模式-工厂方法
设计模式-工厂方法设计模式工厂方法(Factory Method)定义了一个创建对象的接口,但由子类决定要实例化哪个类。工厂方法把实例化操作推迟到子类。工厂方法类图简单工厂中,创建对象的另一个类,在工厂方法中,是由子类来创建对象。主要角色抽象工厂角色:这个工厂方法模式的核心,它与应用程序无关,是具体工厂角色必须实现的接口或者必须继承的父类。具体工厂角色: 含有和具体业务逻辑有关代码,由应用程序调用以创建具体产品的对象。抽象产品角色:它是具体产品继承的父类或者是实现的接口。具体产品角色
2020-11-07 12:51:38 215
原创 设计模式-观察者模式
设计模式-观察者模式在我们的程序中,可能需要在某些数据变化的时候,其他类做出一些响应。不能开一个线程,然后每隔一段时间去检查数据是否有变化。更希望的是当一些内数据变化时,主动推送变化。什么是观察者模式对象之间一对多依赖,当一个对象状态改变时,它的依赖都会收到通知并更新状态。观察者模式类图观察者设计模式包含哪些角色?Subject: 抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存到一个集合中,每个主题都可以有任意数量的观察者,抽象主题提供接口,供增加和删除观察者。ConCret
2020-11-05 11:17:09 310
Python机器学习经典实例
2018-05-11
DbVisualizer Pro 9.2.x
2017-09-06
hive-site.xml 这是一份我本地配置的好用的
2017-09-04
Hadoop实战-陆嘉恒(高清完整版).pdf
2017-08-31
神经网络原理 有目录
2017-03-27
hadoop 虚拟机 连接 dll
2017-03-14
hadoop-eclipse-plugin-2.7.0.jar
2017-03-14
微信公众平台应用开发:方法、技巧与案例
2015-08-09
谭浩强《C++面向对象程序设计》
2015-04-17
人工智能教程
2014-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人