- 博客(218)
- 资源 (1)
- 收藏
- 关注
原创 Promise 使用
Promise 只是一个对象,和同步异步无关,有三种状态用于解决异步回调,编码好看些它的then、catch 等方法,才异步执行then catch 类似于成功和失败状态的分别处理。
2025-03-11 14:41:19
294
原创 布隆过滤器
确定不存在(100%准确)可能存在(有较小误判概率)布隆过滤器是解决海量数据存在性检查问题的利器,合理使用时能显著提升系统性能。结合Redis的实现方案,更可以轻松应对分布式场景下的高并发挑战。使用时注意根据业务特点调整参数,做好容量规划,就能在有限资源下获得最佳效果!
2025-02-12 14:28:01
371
原创 Llm模型本地化部署 Ollama [Xinference]
ollama是一种轻量级LLM模型运行框架,我们可以把它类比为docker,作为一种环境(某大模型)的运行容器帮助我们快速实现本地化部署及使用ollama提供了社区功能,一些开源的模型可在hub中找到现已支持一些语言文本对话文本向量化图像、语音识别等。
2025-02-12 13:41:21
420
原创 多个文件共用main包的问题
方法引入的,例如标准库的包、或者某个github的包、其它文件夹的包。说明编译器在运行时,只会编译和运行你直接提供的文件。方法是本包内的程序,无需显示声明引用,所以运行。只需在编译时指定打包的文件即可,例如。方法里引用的方法是在上方通过显示。则不会报错,自动引入其它包。
2024-12-11 15:00:14
198
原创 golang 隐式继承
CClaims通过匿名字段Von继承了Von的所有方法,包括Valid方法。因此,CClaims 类型(以及它的指针)可以被赋值给。但在 Go 语言中,明确规定是没有继承这个概念,并且类的概念也是没有的,但是我们可以通过一些曲线的方法来实现,例如。字段,CClaims 结构体隐式地“继承”了 Von 的所有方法。接口,因为它们实际上实现了Valid方法。那么继承,也可以通过类型嵌套来实现。对于一个面向对象编程来说。,也就以为这,没有继承。类,我们在使用实例化。下面是一段完成的代码。由于 Von 是一个。
2024-12-02 18:23:30
347
原创 GEN 自动生成 GORM 模型结构体文件
unknown field PreparedSQL in struct literal of type gorm.PreparedStmtDB
2024-11-29 18:04:02
631
原创 golang中,context.WithValue的使用规范问题
我们首先来看一个报错should not use built-in type string as key for value; define your own type to avoid collisions (SA1029)go-staticcheck
2024-11-29 11:28:25
903
原创 Linux中的 strace 命令
通过跟踪系统调用的时间和频率,可以发现程序的性能瓶颈。例如,跟踪一个程序的系统调用并统计耗时。上面这段官方话术简介,是最中肯的理解,通俗的来说,stract 命令能够帮助开发者理解程序。也可以理解为,能够让你从理解一个进程执行的整个生命周期,底层发生了什么,更好的去。当你不想去程序中打断点调试问题,特别是框架模式下开发,特别适用。通过这些底层的输出信息,可以让你大致判断问题出在哪里。跟踪一个已经在运行的进程,可以使用。命令输出每个系统调用的统计信息。命令每个系统调用的执行时间。输出可能显示类似如下内容。
2024-11-19 15:11:46
469
原创 laravel框架fpm运行方式大流量优化方案
开启opcache后,每次发布版本建议reload fpm。否则会在cache刷新间隙出现500错误(部分文件cache未能更新)
2024-11-19 13:35:15
660
原创 Docker 构建php web开发环境
注意:建议生产环境将软件开发环境与中间件区分在不同镜像中,例如php开发环境,不与nginx、mysql、redis在同一个镜像中构建,那怕是php中的CGI需要nginx代理,也不存放在同一个镜像中,方便维护。php的pecl命令,通过pecl搜索出的扩展大多是一些适配php高版本的扩展,这里我们通过pecl官网按照指定的扩展版本,例如。这里我们使用的是dockerhub上的 php.7.2镜像,做一些扩展安装、配置设置。php目录为 php、fpm的镜像配置,使用本地的。就会php目录下默认的。
2024-11-03 18:18:13
740
原创 对 Mysql int(11) 11 的理解
如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段b,插入数值1显示为,左边补了10个零直至长度达到11位;设置字段的显示宽度并不限制字段存储值的范围,比如字段d设置为int(5),但是仍然可以存储1234567890这个10位数字;设置的字符宽度只对数值长度不满足宽度时有效,如d字段int(5),插入1时,长度不足5,因此在左边补充4个零直到5位,但是插入1234567890时超过了5位,这时的显示宽度就起不了作用了。
2024-10-11 15:49:23
557
原创 python PIL(Pillow) 库的9种图片模式
为32位彩色图像,它的每个像素用32个bit表示,其中24bit表示红色、绿色和蓝色三个通道,另外8bit表示alpha通道,即透明通道。为32位整型灰色图像,它的每个像素用32个bit表示,0表示黑,255表示白,(0,255)之间的数字表示不同的灰度。为32位浮点灰色图像,它的每个像素用32个bit表示,0表示黑,255表示白,(0,255)之间的数字表示不同的灰度。就是印刷四分色模式,它是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓。
2024-09-27 09:50:24
349
原创 pprof的使用
先来一段性能分析案例命令行运行这是段简单的代码示例,通过runtime分析出程序运行过程中内存的变化情况,分别对应着内存的分配、空闲、释放如果能web页面展示,或者生成一个文件、测试图表、命令行交互分析更为方便下面介绍pprof使用方式pprof是go语言内置 的分析性能,运维分析数据的工具。
2024-09-26 10:44:35
869
原创 linux下/etc/init.d的简单介绍
例:执行命令“service resin start”,可启动/etc/init.d/resin脚本 [与。
2024-09-26 10:44:05
268
原创 vagrant目录映射加速访问
保存后,使用命令 vagrant reload 重启虚拟机后才会生效,期间会修改MAC OX的 /etc/exports 文件。会提示输入mac账号的密码。修改2处: 私有的ip 和 项目所在的目录中新增 ,type:“nfs”首先要把虚拟机的网络设置成 :private_network 模式。登录虚拟机,查看新的ip地址。进入虚拟机所在的目录。
2024-09-26 10:43:21
314
原创 java List使用
List 是unit包中一个接口,表示一个有序的集合。具体实现包括 ArrayList、LinkedList、Vector 等。为一个泛型接口,立里面实现了很多基本操作,例如增删改查等。3.获取 List 集合中的元素。
2024-09-26 10:43:06
317
原创 zookeeper数据模型
应用1的子树实现了一个简单的组成员协议:每个客户端进程p(i)创建一个znode,p_i在/app1下,只要/app1/p_i存在就代表进程p(i)在正常运行。不同于文件系统,每个节点都可以保存数据。每个节点都有一个版本(version)。data tree中有两个子树,一个用于应用1(/app1)和另一个用于应用2(/app2)。ZooKeeper对外提供一个用来访问。ZooKeeper的层次模型称作。
2024-09-26 10:41:39
210
原创 zookeeper 的设计目标
所有的事务请求必须由唯一的Leader服务来处理,Leader服务将事务请求转换为事务Proposal,并将该Proposal分发给集群中所有的Follower服务。zookeeper使用单一的主进程来接收、处理客户端的所有事务请求,采用原子广播协议将数据状态的变更以事务Proposal的形式广播到所有的副本进程上去。数据全量存储在内存中保持高性能,通过集群来实现高可用,由于Zookeeper的所有更新和删除都是基于事务的,所以其在读多写少的应用场景中有着很高的性能表现。
2024-09-26 10:40:58
506
原创 Linux查看Yum的安装目录及包目录
以MySQL的安装为例,我们使用RPM方式安装了与MySQL相关的好多包,其实rpm有两个参数-l和-c可以帮助我们查看具体的安装路径。如果使用RPM安装了一些包,一般来说,RPM默认安装路径如下。来查看具体的安装路径。搜索具体的包文件列表。搜索具体的包配置文件。rpm -ql 包名。
2024-09-26 10:39:37
1710
原创 mysql的四种日志
二进制日志:以二进制文件的形式记录了数据库中的操作,但不记录查询语句(可以还原数据库)错误日志:记录Mysql服务器的启动、关闭和运行错误等信息。Query_time: 语句执行时间(以秒为单位)Rows_examined:优化程序检查的行数。Lock_time:在几秒钟内获得锁定的时间。慢查询日志:记录执行时间超过指定时间的操作。通用日志:记录用户登录和记录查询的信息。Rows_sent:发送到客户端的行数。my.ini文件中添加。
2024-09-26 10:39:02
370
原创 php 支付宝SDK报错 Cannot redeclare Decrypt()
修改alipaySDK中定义的函数名称、修改引用的函数名称。函数与Laravel中定义的。alipaySDK中定义的。
2024-09-26 10:38:09
154
原创 redis有序集合多字段排序
只能通过前面的分数这一个维度来实现,如果现在引入了另一个字段,可以在分数值(利用阿拉伯数字)上做手脚。这三个字符串,按照时间先后特性转化为unix时间戳,拼接到分数后面。当然,并一定是时间才可以,只要能够将这个字段抽象成。首先,redis有序集合本身是不支持。即 第一条件排序 然后第二条件排序。
2024-09-26 10:37:25
254
原创 抢红包算法
做N-1次随机运算,随机的范围为 (1, M),当切割点重复时重新随机。将红包总金额比作一条线段,随机出N-1个切割点,事先将红包分成N份。红包总金额为M,人数为N。
2024-09-26 10:33:37
138
原创 Kafka 数据顺序
由于Kafka的一个topic可以分为多个partition,producer发送消息的时候,是分散在不同的partition的。当producer按顺序发消息给broker,但进入Kafka之后,这些消息就不一定进到哪个partition,会导致顺序是乱的。
2024-09-26 10:28:12
159
原创 linux 设置终端登录超时时间
临时更改当前会话的超时时间,上面是修改的服务端配置项,永久性的改变,下面是客户端链接时加个参数即可。远程登录linux服务器,如何设置终端失效时间(即过了多久不操作,终端即将失效)。如上设置后,登录这台服务器的终端在600秒内不做操作,则该终端就将失效!如果没有生效,请执行下面命令重新启动ssh服务。
2024-09-26 10:22:53
1554
原创 lumen 数据库查询 语法糖
vendor/laravel/lumen-frameword/src/appcation.php 为框架加载文件。$app->configure(‘文件名’);可加载自定义指定配置。DB::table()->insert 插入成功返回值 true。DB::table()->update 修改成功返回影响行数。getConfigurationPath方法会加载系统配置文件。NOW()方法为mysql方法,php无法运行,此处原样输出。直接使用SQL不限于raw(),还有whereRaw()
2024-09-26 10:09:11
401
原创 .yaml文件使用
官方文档 https://yaml.org/ 里面有各语言的调用推荐库YAML(全称为YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,被广泛应用于配置文件、数据交换、日志文件等场景。YAML的语法简洁、易读易写,可以用缩进表示层次关系,也支持键值对和列表等形式。
2024-09-25 11:37:05
510
原创 Kafka简介
Kafka是一个分布式、支持分区、多副本,基于zookeeper(2.8之前,准确来说是基于Raft算法)协调的分布式消息系统,由Scala和Java编写。
2024-09-25 11:34:51
639
原创 PHP操作文件锁
如果使用同一个浏览器的多个标签页同时访问同一个URL,那么浏览器认为这些不同的请求是同一个人,会对你的每个请求进行排队,不做并发处理。不管Nginx还是Apache,都是在并发处理,只不过你的浏览器自作主张,把你的请求阻塞了,看起来好像是服务器不支持并发,实则不然。直到该线程释放资源,将资源的状态变成“非锁定”,其他的线程才能再次锁定该资源。写锁: x-lock(exclusive-lock)排他锁,独占锁,悲观锁,写操作前,尝试添加的锁定类型。允许并发读,阻塞其他写操作。一条线程上锁后,其他线程阻塞。
2024-09-25 11:34:24
314
原创 微服务注册发现 分析
综上所述,RPC的每一次请求对服务注册中心的压力是存在的,但可以通过优化注册中心、缓存查询结果和负载均衡等措施来减轻压力,提高系统性能和可靠性。微服务注册只需要一个key,服务发现需要watch和分布式锁机制,这些是一些字面上简单的东西,但是在分布式系统中,服务实例的数量可能非常多。综上所述,etcd的分布式服务注册和发现具有更好的可扩展性、可用性、动态更新和负载均衡等优势,使得分布式系统的服务管理更加高效、灵活和可靠。RPC的每一次请求都需要向服务注册中心发起查询请求,以获取服务提供者的地址信息。
2024-09-25 11:32:32
683
原创 流量限流算法
滑动窗口为固定窗口的改良版,解决了固定窗口在窗口切换时会受到两倍于阈值数量的请求,滑动窗口在固定窗口的基础上,将一个窗口分为若干个等份的小窗口,每个小窗口对应不同的时间点,拥有独立的计数器,当请求的时间点大于当前窗口的最大时间点时,则将窗口向前平移一个小窗口(将第一个小窗口的数据舍弃,第二个小窗口变成第一个小窗口,当前请求放在最后一个小窗口),整个窗口的所有请求数相加不能大于阈值。在指定周期内累加访问次数,当访问次数达到设定的阈值时,触发限流策略,当进入下一个时间周期时进行访问次数的清零。
2024-09-25 11:32:15
447
原创 redis-rdb-tools使用
报错信息: error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://……格式保存的python安装包,Wheel是Python发行版的标准内置包格式。WHL文件包含Python安装的所有文件和元数据,其中还包括所使用的Wheel版本和打包的规范。rdbtools 用于解析Redis的 dump.rdb 文件,很省内存,python开发的软件。
2024-09-25 11:31:52
559
原创 ssh 命令使用
authorized_keys 这个文件就是刚刚传输的文件至于为什么名字变了这就是ssh-copy-id的原因了,如果用scp来传文件的是不会出现这种效果的这也是为什么刚刚用ssh-copy-id这条命令的原因,这条命令是专门为ssh设定的。数据库和web服务器在同一个内网,或者有IP白名单,而我们在本地却没办法访问数据库,但是又很想通过客户端连接数据库方便操作,可以通过ssh进行端口转发,在本地开一个端口,然后通过白名单的服务器中转数据库连接。突破防火墙的限制完成一些之前无法建立的 TCP 连接。
2024-09-25 11:31:26
2675
Closure闭包函数示例
2019-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人