二分查找 基础二分实现查找实现与动画 template<typename T> int binarySearch(T arr[], int len, T target) { int l = 0, r = len - 1; while (l <= r) { // 求中值 int mid = l + ((r - l) >> 1); if (arr[mid] == target) { return mid; } if (arr[mid] > target) { r = mid - 1;…
二分查找 基础二分实现查找实现与动画 template<typename T> int binarySearch(T arr[], int len, T target) { int l = 0, r = len - 1; while (l <= r) { // 求中值 int mid = l + ((r - l) >> 1); if (arr[mid] == target) { return mid; } if (arr[mid] > target) { r = mid - 1;…
二叉堆 简介 二叉堆(英语:binary heap)是一种特殊的堆,二叉堆是完全二叉树。二叉堆满足堆特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆。 当父节点的值总是大于或等于任何一个子节点的值时为「最大堆」。当父节点的值总是小于或等于任何一个子节点的值时为「最小堆」。 完全二叉树:一棵深度为 k 的有 n 个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为 i (1 ≤ i ≤ n)的结点与满二叉树中编号为 i 的结点在二叉树中的位置…
操作全以 root 用户权限 清理 mariadb # 查询存在的 $rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64 # 卸载。-e: 清除 (卸载) 软件包。--nodeps: 不验证软件包依赖 rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 清理 MySQL 如果需要卸载旧的 MySQL,可以使用下方的步骤,注意备份数据。 $ rpm -qa | grep mysql mysql-community…
环境 使用语言 Go 使用镜像 golang alpine scratch Go 程序 一个简单的服务 func indexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "hello world") } func main() { http.HandleFunc("/", indexHandler) http.ListenAndServe(":9090", nil) } Dockerfile FROM golang as golan…
版本 服务 版本 CentOS 7.8 Kubernetes 1.18.x 证书问题 可能很多人在一开始学习 k8s 的时候,没有注意过证书的问题,在使用 kubeadm 安装 k8s 单机/集群的过程中就是一路往下,如果是学习或者测试使用,使用完毕之后就把虚拟机或者临时云服务器删除了,那也不会发现证书问题。如果这个 k8s 环境要使用 1 年以上,就会碰到这个问题,因为默认证书有效期为 1 年,CA 根证书是 10 年: # 查看证书截止时间,该命令显示 /etc/kubernetes/pki 文件夹中的客户…
简单使用 创建一个 SpringBoot 项目即可直接使用 Logback 进行日志打印,只需引入 spring-boot-starter-web: 在依赖 spring-boot-starter-logging 都已经引用好了,随后直接启动项目: 这里仅仅只是创建了一个 SpringBoot 项目,什么都没有配置,启动之后,日志也已经存在了。仔细观察可以看出打印的日志是具有同一格式的,依次是日期、时间、日志级别、进程号(PID)、线程名、包路径、具体日志消息。 至于为什么默认实现是 Logback,有…
死信队列的作用 使用 RabbitMQ 的时候可能会碰到以下几个问题: 消费者端调用了 basicNack 或者 basicReject,并且没有进行 requeue,如果没做其他措施的话,这个消息也就丢失了。 消息在队列的存活时间超过设置的 TTL 时间。 消息队列的消息数量已经超过最大队列长度。 以上几个问题都会导致消息丢失,消息丢失的代价可大可小,视自己业务情况而定,有些业务如果消息丢失无所谓的话就不用理睬,相信大部分业务都是不允许丢失的。死信队列的出现就可以解决以上三个问题,当以上三个问题出现时,消…
软件版本 软件 版本 Spring Boot 2.5.0 spring-boot-starter-amqp 2.5.0 Erlang 24.0 RabbitMQ 3.8.19 发送消息 配置信息 spring: rabbitmq: host: localhost port: 5672 username: admin password: 123456 virtual-host: 'example' # 生产者 ==>> Exchange 确认方式 publisher-confirm-type: corre…
当数据库中表的结构更改时,需要在项目中重新生成 Mapper,想要用新的 Entity、Mapper.java、Mapper.xml 都覆盖掉,这时会在插件里面配置以下配置: <configuration> <!--配置文件的路径--> <configurationFile>src/main/resources/lib/generatorConfig.xml</configurationFile> <!-- 覆盖 --> <overwrite>…
Maven 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ElasticsearchRepository<T, ID> Spring 提供的便捷操作 Dao 层接口,通过继承此接口可以实现简单的增删改查操作。 T…