Fork me on GitHub
BangjinHu's Blog

让优秀成为习惯,让知识成为信仰


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 本站搜索

剑指Offer - Redis

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 Redis
字数统计: 315 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

剑指Offer - Redis

[TOC]

问题1:Redis查询速度快的原因(100000+QPS(每秒内查询次数))

1.完全基于内存,绝大部分请求是纯粹的内存操作,执行效率高

2.数据结构简单,对数据操作也简单

3.采用单线程,单线程也能处理高并发请求,想多核也可以启动多实例

4.使用多路IO复用模型,非阻塞IO

    多路IO复用模型

        Redis采用的IO多路复用函数:epoll | kqueue | evport | select

            1.因地制宜

            2.优先选择时间复杂度为O(1)的IO多路复用函数作为底层实现

            3.以时间复杂度为O(N)的select作为保底

            4.基于react设计模式监听IO事件

问题2:Redis常用数据类型

1.String 最基本的数据类型,二进制安全

2.HASH String元素组成的字典,适合用于存储对象

3.LIST 列表,按照String元素插入顺序排序

4.SET String元素组成的无序集合,通过hash表实现,不允许重复

5.Sorted Set 通过分数来为集合中的成员进行从小到大的排序

剑指Offer - 数据库

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 MySQL
字数统计: 1,970 | 阅读时长 ≈ 7

注意:所有文章除特别说明外,转载请注明出处.

剑指Offer - 数据库

[TOC]

架构

问题:如何设计一个关系型数据库。这里将整个数据库划分成两个部分:

1.存储,相当于OS的文件系统,存储数据

2.程序实例,包括存储管理/缓存机制/SQL解析模块/日志管理/权限划分/异常容灾机制/索引管理和锁管理,这些对程序进行管理。
阅读全文 »

树

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 数据结构
字数统计: 293 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

AVL 树

最早的平衡二叉树之一,应用相对于其它数据结构较少。Windows对进程地址空间的管理就用到AVL树。

红黑树

平衡二叉树,如map和set都用红黑树实现。

红黑树是对2-3查找树的改进,它能用一种统一的方式完成所有变换。

注意:遵守以下约束的才能叫做 红黑树

1、红黑树是二叉搜索树

2、根节点是黑色

3、每个叶子节点都是黑色的空节点(NIL节点)

4、每个红色节点的两个子节点都是黑色(从每个叶子到根的所有路径上不能有两个连续的红色节点)

5、从任一节点到其它每个叶子节点的所有路径都包含相同数目的黑色节点(每一条树链上的黑色节点数量(黑高)必须相等)

总结:

B/B+树

用在磁盘文件组织、数据索引和数据库索引。

Trie树(字典树)

用在统计和排序大量字符串。

2-3树

图解HTTP

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 HTTP
字数统计: 695 | 阅读时长 ≈ 3

注意:所有文章除特别说明外,转载请注明出处.

第一章 了解Web及网络基础

[TOC]

1.4 与HTTP关系密切的协议:IP TCP和DNS

IP协议的作用是将各个数据包传送给对方,其中两个重要的条件是IP地址和MAC地址。

提示:IP地址指明了节点被分配到的地址。MAC地址指网卡所属的固定地址。使用ARP协议凭借MAC地址进行通信。

阅读全文 »

图解TCP/IP

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 图解TCP/IP
字数统计: 470 | 阅读时长 ≈ 2

注意:所有文章除特别说明外,转载请注明出处.

图解TCP/IP

[TOC]

第5章 IP协议相关技术

5.2 DNS

TCP/IP在一开始的时候就有一个主机识别码,为每一台主机赋值唯一的主机名,在进行网络通信时可以直接利用主机识别码进行通信,在这样的基础上需要需要系统将主机名转换为具体IP地址,需要使用到hosts文件。

发展到后面的DNS则不需要再向hosts报告,直接通过DNS进行域名与ip地址之间的切换。

5.3 ARP

阅读全文 »

多线程与并发

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 多线程与并发
字数统计: 842 | 阅读时长 ≈ 3

注意:所有文章除特别说明外,转载请注明出处.

[TOC]

多线程与并发 - 面试

如何实现处理线程的返回值

1.主线程等待法

2.Thread类的join()阻塞当前线程以等待子线程处理完毕

3.通过Callable接口实现,通过 FutureTask 或 线程池获取

sleep()方法与wait()方法区别

1.sleep()是Threadk类的方法,wait()是Object类中定义的方法

2.sleep()方法可以在任意地方使用

3.wait()方法只能在synchronized方法或synchronized块中使用

最主要本地区别:

    1.Thread.sleep()只会让出CPU,不会导致锁行为的改变

    2.Object.wait()不仅让出CPU,还会释放已经占有的同步资源锁
阅读全文 »

字节码

发表于 2019-10-15 | 更新于: 2020-03-30 | 分类于 JVM
字数统计: 3,257 | 阅读时长 ≈ 12

注意:所有文章除特别说明外,转载请注明出处.

字节码

[toc]

反编译

1. javap 路径(.class文件) 能够反编译出Java文件的字节码

2. javap -c 路径 打印出.class文件的详细信息

3. javap -verbose .class文件的路径 反编译的文件内容

javap -verbose 命令

在使用 javap -verbose 命令分析一个字节码文件时,将会分析该字节码文件的魔数、版本号、常量池、类信息、类的构造方法、类中的方法信息、类变量与成员变量等信息。

阅读全文 »

AOP

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 AOP
字数统计: 917 | 阅读时长 ≈ 4

注意:所有文章除特别说明外,转载请注明出处.

实现AOP功能的封装与配置的小框架

本文通过是动态代理实现的AOP功能的封装与配置的小框架.加深对动态代理和AOP编程的理解

阅读全文 »

服务器Socket

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 网络编程
字数统计: 272 | 阅读时长 ≈ 1

注意:所有文章除特别说明外,转载请注明出处.

服务器 Sokcet

[TOC]

ServerSocket

ServerSocket类包括了编写服务器所需要的全部内容。包括创建新ServerSocket对象的构造函数、在指定端口监听连接方法、配置各个服务器Sokcet选项的方法。

阅读全文 »

消息中间件

发表于 2019-10-15 | 更新于: 2020-03-29 | 分类于 中间件
字数统计: 701 | 阅读时长 ≈ 2

注意:所有文章除特别说明外,转载请注明出处.

消息中间件

[TOC]

概念

消息中间件,也可以叫做中央消息队列或者是消息队列(区别于本地消息队列,本地消息队列指的是JVM内的队列实现),是一种独立的队列系统,消息中间件经常用来解决内部服务之间的异步调用问题。

请求服务方把请求队列放到队列中即可返回,然后等待服务提供方去队列中获取请求进行处理,之后通过回调等机制把结果返回给请求服务方。

阅读全文 »
1…91011…22
Bangjin-Hu

Bangjin-Hu

212 日志
73 分类
73 标签
RSS
GitHub email 微博 知乎 iProgramer_ing
0%
© 2018 — 2020 Bangjin-Hu | Site words total count: 486.7k