- 博客(30)
- 收藏
- 关注

原创 golang平滑重启(优雅重启)方案
golang语言本生不支持平滑重启,所以需要借助第三方软件来实现平滑重启,本文主要根据openresty来实现golang的平滑重启
2024-07-18 08:55:46
1116

原创 基于M3u8的视频加密及播放
安装ffmpeg mac安装 brew install ffmpeg生成enc.key生成 iv其中 https://xxx/enc.key 你需要提供对外的接口,可以通过接口访问到enc.key文件的内容,你可以放到自己的web项目中,
2024-07-17 14:04:25
1482
原创 ubuntu安装jenkins
若执行完sudo apt-get update 报W: GPG error: https://pkg.jenkins.io/debian-stable binary/ Release: The following signatures couldn’t be verified because the pavailable: NO_PUBKEY XXXXXXXXXXXXXXX,可通过下方命令解决,XXXXXXXXXXXXXXX为公钥序列号。添加 Jenkins 软件包仓库。启动jenkins服务。
2024-12-17 10:53:59
190
原创 leetCode,盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:height = [1,1]
2024-07-19 08:56:06
153
原创 php算法-水仙花数
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2024-07-18 08:58:12
159
原创 安装rabbit-mq,php联调rabbit-mq
composer.json(composer加载php-amqplib库)rabbit-mq.config.php(rabbitMQ配置文件)RabbitMQ.php(封装rabbitMQ)producer.php(生产者)consume.php(消费者)
2024-07-17 14:26:32
981
原创 nginx+FastCgi+phpfpm
从上面图中,我们看出了sapi就是这样的一个中间过程,SAPI提供了一个和外部通信的接口,有点类似于socket,使得PHP可以和其他应用进行交互数据(apache,nginx等)。php默认提供了很多种SAPI,常见的提供给apache和nginx的php5_module、CGI、FastCGI,给IIS的ISAPI,以及Shell的CLI。#unix:/usr/local/opt/php/fastcgi.sock #nginx fastcgi进程监听socket。
2024-07-17 14:20:12
626
原创 ELK搭建
elasticsearch下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-21。logstash下载地址:https://www.elastic.co/cn/downloads/past-releases/logstash-7-17-21。kibana下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-17-21。
2024-07-17 14:19:14
434
原创 golang面试笔记
下,所有阻塞在等待队列中的goroutine会按顺序进行锁获取,当唤醒一个等待队列中的goroutine时,此goroutine并不会直接获取到锁,而是会和新请求锁的goroutine竞争。解决:1. runtime.NumGoroutine() 获取当前运行中的 goroutine 数量,进行前后对比业务服务的运行场景中,Goroutine 内导致的泄露,更多的是使用 PProf。因为它的每次重分配容量都是倍增的。M必须拥有P才可以执行G中的代码,P含有一个包含多个G的队列,P可以调度G交由M执行。
2024-07-17 14:17:57
605
原创 golang html转pdf
下载文件:https://wkhtmltopdf.org/downloads.html。安装wkhtmltopdf:brew install wkhtmltopdf。环境报错:cannot connect to X server。
2024-07-17 14:16:53
230
原创 redis 有序集合,相同分值,按照时间顺序排序
redis的有序集合在分值相同的条件下,是按照字典进行的排序的,在很多情况下不能满足实际需求,如有一个战力排行榜,要求同一战力先达到该战力的排到第一位。按照redis的默认排序方式这个是无法做到的。采用战力+时间戳的方式来实现相同战力保存不同的分值。A:战力+(当天最大时间戳-当前时间)B:战力+(当天最大时间戳-当前时间)最终排序,A 依然是第一。
2024-07-17 14:14:42
288
原创 redis 常见面试题
Redis有哪些优缺点Redis为什么这么快Redis 的持久化机制是什么?各自的优缺点?Redis的过期键的删除策略Redis的内存淘汰策略有哪些缓存雪崩缓存穿透缓存击穿缓存预热
2024-07-17 14:13:27
305
原创 redis 底层数据结构
这里采用的便是链地址法,通过next这个指针可以将多个哈希值相同的键值对连接在一起,用来解决哈希冲突。搜索:从最高层的链表节点开始,如果比当前节点要大和比当前层的下一个节点要小,那么则往下找,也就是和当前层的下一层的节点的下一个节点进行比较,以此类推,一直找到最底层的最后一个节点,如果找到则返回,反之则返回空。Redis的字符串,不是 C 语言中的字符串,它是自己构建了一种名为 简单动态字符串(simple dynamic string,SDS)的抽象类型,并将 SDS 作为 Redis的默认字符串表示。
2024-07-17 14:12:44
941
原创 mysql锁
间隙锁(Gap Lock)是Innodb在\color{red}{可重复读}提交下为了解决幻读问题时引入的锁机制,幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的时候(加锁查询),会出现不一致的问题,这时使用不同的行锁已经没有办法满足要求,需要对一定范围内的数据进行加锁,间隙锁就是解决这类问题的。MDL 的作用是,保证读写的正确性。你可以想象一下,如果一个查询正在遍历一个表中的数据,而执行期间另一个线程对这个表结构做变更,删了一列,那么查询线程拿到的结果跟表结构对不上,肯定是不行的。
2024-07-17 14:10:50
791
原创 mysql B+数索引数据结构
概念:二叉树是另一种树形结构概念:平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构;概念:单一节点存储多个键值和数组的平衡树B数索引的数据结构如下图:B+树和B树的进一步优化,如下图。
2024-07-17 14:09:37
764
原创 mysql mvcc实现可重复读和读已提交
它的主要作用是将事务恢复到执行修改之前的样子,但是,恢复的情况一般分为两种,一种是逻辑恢复,一种是物理恢复,这里需要非常强调的是,undo的恢复是逻辑恢复,也就是说,如果你插入了100w条数据,导致innodb分配了一个新的数据页来存储这些数据,那么在事务进行回滚的时候,undo的功能并不是回收这个数据页,而是将这些insert的操作,改变成delete的操作从而执行回滚。除此之外,undo日志会将delete操作转化为insert操作,update操作转化为反向的update操作。
2024-07-17 14:08:20
790
基于beego和layui的管理后台系统
2024-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人