- 博客(441)
- 资源 (11)
- 收藏
- 关注

原创 窗口函数(Window Function)
窗口函数(Window Function)指的是对于查询结果的每一行,使用与该行相关的所有行,进行函数计算,可得到新的数据列。对于大多数聚合函数(如 min, max, count, sum, avg 等),如果其后紧跟 over 语句,就会作为窗口函数执行。
2023-02-15 23:45:41
1902
原创 Java 泛型
默认情况下,Collection 集合(如 ArrayList)中的元素可以是任意类型,而取出元素时默认的类型是 Object。由于多态的约束,取出的元素可能就无法使用自身独有的方法。如果非要使用,就不得不进行强制类型转换。这样,就会显得比较复杂,而且容易出问题。泛型: 对容器中的元素数据类型进行约束。
2023-05-08 12:11:23
380
1
原创 Java 异常
在 java 中,异常分为两大类:可以通过代码恢复正常的异常,称之为运行时异常。 最大的父类为 RuntimeException。不可以通过代码恢复正常的异常,称之为编译时异常。 最大的父类为 Exception。
2023-05-04 16:05:33
486
原创 Enum 枚举和递归
枚举是一个特殊的类,里面包含了一些特殊的对象,这些对象是枚举类的实例,不会发生改变,这些特殊对象一般采用大写标识符。枚举采用 enum 关键字。枚举对象之间用逗号分隔,如果对象后还有其他语句,就需要用分号结尾。枚举类的对象是在内部自动创建的,不能在外部创建对象。
2023-05-02 20:09:09
196
原创 package 包
package 相当于一个容器,用于容纳类,对类进行分类管理。同一个包中的类名不能重复。一个包中可包含多个源文件(.java),每个源文件中可声明(定义)多个类,但一般是每个源文件只声明一个类。
2023-04-25 23:42:29
447
原创 面向对象-基础
面向对象编程(Object Oriented Programming) 以具体的事或物(Object)为核心进行分析和处理问题的编程思想,称为 OOP。所谓的面向对象,是指分析问题时,以问题所涉及到的事或物为中心的分析方式。重点是对一系列的事物进行提炼。归纳和整理的结果就是类 Class,具体的事或物就是对象 Object,也称实例。
2023-04-19 16:11:24
470
原创 数组 Array
在 Java 中,数组也是一种对象。数组的索引(下标)是从 0 开始的。数组中元素的数量不能超过数组的容量。数组中元素的类型相同,这个类型可以是任意类型。
2023-04-18 12:36:26
197
原创 字符串 String
String 是一组字符组成的数据整体。用双引号括起来。字符串类的全名是 java.lang.String在 java 中,字符串也是对象。字符串是按照字节存储的。
2023-04-13 23:23:55
482
原创 流程控制语句
流程控制: 指的是对代码的执行顺序进行控制。默认是自上而下顺序自行。顺序执行分支语句 if 语句,switch 语句循环语句 while 语句,do while 语句,for 语句
2023-04-11 17:29:02
189
原创 docker-compose
docker-compose 命令是基于当前目录中的 docker-compose.yml 文件来运行的。在 docker-compose.yml 文件中的配置实现了和 docker run 类似的功能,只是名称不一样。通过 docker-compose 命令可以很方便地管理一组服务容器的创建和启动、停止、重启、查看日志等。如果没有 docker-compose 命令,请到官网下载安装。推荐使用 docker-compose 来管理多个服务容器。
2023-04-05 13:33:13
769
4
原创 Stream 数据类型
Redis 5.0 版本新增了 Stream 数据类型(数据结构),它给 Redis 带来了支持持久化、消费者 ack 、断点消费、多消费者组的消息队列。Stream 从概念上来说就像是一个消息链表,把所有发布的消息都一个个串起来,每个消息都有一个唯一的 ID。可以把 Stream 看作是轻量级的内存版 kafka。
2023-03-12 16:50:11
745
原创 PubSub 发布订阅
Redis 支持简易的 publish/subscribe (发布/订阅)模式,简称 PubSub。发布者一旦向某个频道发送消息,订阅了该频道的多个订阅者,都能立马收到消息。但订阅者无法获取在它订阅之前,就已经产生的消息。
2023-03-10 11:20:19
514
原创 InnoDB 死锁和问题排查
两个及以上的事务各自持有对方需要的锁,导致双方都无法继续执行,只能互相等待(循环等待)。因为双方都在等待对方释放锁,而各自又无法释放锁,从而导致了死循环。这就是死锁(dead lock)。当两个事务锁定了多张表的多条记录(如 UPDATE 或者 SELECT ... FOR UPDATE),且它们各自锁定的顺序相反时,就会出现死锁。当 sql 语句锁定了多行记录和间隙时,也容易出现死锁。
2023-03-03 19:09:10
1484
原创 Redis 存储用户信息时 string 和 hash 的对比
在 redis 中,string 类型和 hash 类型,都可以用来存储对象信息(结构体数据)。那么,string 和 hash 有什么区别?该如何抉择?既然 string 可以实现相同的功能,为何还要用 hash 呢?在 redis 官网可看到优先使用 hash 的字眼,主要是基于以下三个因素:内存占用率、时间复杂度和使用的简便性。
2023-02-28 14:39:16
2260
1
原创 Redis 数据持久化
Redis 是一种内存数据库,也就是说 Redis 服务器在运行时,系统为其分配了一部分内存来存储数据,若 Redis 服务突然宕机,内存里的数据将会丢失。为了应对这种情况,必须通过持久化的方式将数据从内存保存到磁盘。Redis 数据持久化有两种方案:RDB 持久化(Redis DataBase)AOF 持久化(Append-Only File)RDB 是指将内存中某个时间点的全量数据备份,存储到磁盘文件(dump.rdb),这个文件是一个二进制压缩的紧凑文件。
2023-02-26 15:31:03
598
原创 Windows 安装 Redis 5.0
Windows 安装 Redis 5.0。可以到 github 上搜索 redis for windows,自行寻找资源。或者直接使用 https://github.com/tporadowski/redis/releases 。然后,点击 Redis-x64-5.0.14.1.msi,开始下载。
2023-02-25 12:24:21
2825
原创 缓存穿透、缓存击穿和缓存雪崩
当数据查询在 Redis 缓存中没有数据时,该查询会下沉到 MySQL 数据库层,同时如果数据库层也没有该数据,就无法进行缓存。当出现大量这种查询(或被恶意攻击)时,查询请求全部透过缓存访问底层数据库,而数据库中也没有这些数据,这种现象就是缓存穿透。
2023-02-24 00:21:15
430
原创 布隆过滤器
布隆过滤器(Bloom Filter)是 Redis 中的海量数据去重或过滤工具。需手动下载,并在 Redis 的配置文件中加载 redisbloom.so 模块。布隆过滤器是一种高空间利用率的概率型数据结构。常用于判断某个元素是否存在于一个集合中。虽然这个判断只是一个概率性的结果,并不完全准确。但只要正确使用,在足够大体量的数据中,误判的概率可以忽略不计。
2023-02-22 23:43:36
380
原创 cast() 和 convert() 函数
cast() 和 convert() 函数非常常用,它们可以转换数据的数据类型、字符集以及排序校对规则。
2023-02-16 23:21:34
523
原创 配置局域网IP之No alive nodes found in your cluster
自己在本地搭建了 Windows 版本的 elasticsearch-5.5.2 和 kibana-5.5.2。未曾修改 config/elasticsearch.yml 配置文件,启动 elasticsearch 和 kibana之后,一切正常。但是,在 PHP 开发的项目中使用 "elasticsearch/elasticsearch": "6.7.2" 包操作本地的 elasticsearch 时,报以下错误
2023-02-07 19:49:26
1244
原创 Win10 的 Ubuntu子系统安装可视化图形界面
操作之前,先确保 apt 源已修改为国内的阿里云镜像源。否则,下载速度可能会很慢。Ubuntu子系统所在的路径C:\Users\<用户名>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc更新 apt-get 源sudo apt-get update安装图形界面sudo apt install xorgsudo apt install xfce4安装并配置
2021-01-03 14:23:11
4262
1
原创 Ubuntu 20.04 apt 源修改为国内的阿里云镜像源
查看当前系统的版本信息命令:lsb_release -ayj@LAPTOP-ND0NRET5:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 20.04.1 LTSRelease: 20.04Codename: focal切换为 root 用户sudo - root备份默认的源cp /etc/apt/sou
2021-01-02 16:09:28
5276
原创 RabbitMQ 死信队列
死信交换机DLX(Dead-Letter-Exchange)可以称之为死信交换机,也称之为死信邮箱。当消息在一个正常的业务队列中变成死信(dead message)之后,它能被重新发送到另一个交换机中,这个交换机就是 DLX,绑定 DLX 的队列就是死信队列。如果一个正常的业务队列设置了死信邮箱,那么,在业务队列的消费者运行后,死信邮箱就会创建成功,并且在 RabbitMQ Management(web管理工具)的 Queues 菜单栏中,可以看到该业务队列 Features 栏会多出一个 DLX 标
2020-12-20 22:15:44
313
手机号码段全国归属地数据库(共360569条记录)txt文件和sql文件
2017-06-07
sublime-TortoiseSVN-master.zip
2015-12-15
wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b.exe
2015-11-12
ThinkPHP3.1.2完全开发手册.chm
2015-11-05
ThinkPHP3.2.2完全开发手册.chm
2015-11-05
php-5.4.45-nts-Win32-VC9-x86.rar
2015-11-04
php-5.3.29-nts-Win32-VC9-x86.rar
2015-11-04
mod_fcgid-2.3.6-win32-x86.zip
2015-11-04
wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe
2015-11-04
Zend Guard 加密 与 Zend Loader 解密
2015-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人