自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 npm 安装详细教程 最后附上 Node版本管理Nvm的安装教程

windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要直接访问官网(下载 | Node.js 中文网),这里我们可以选择 Windows 安装包 (.msi)-64位进行安装。下面可以选择制定Node版本进行安装需要替换为自己的安装目录下面表示安装完成:安装完成目录下面有对应三个文件。

2024-09-24 15:18:36 829

原创 Go使用ORM 操作数据库 Assign 使用 FirstOrCreate

当更新某个字段值时,需要使用Assign和FirstOrCreate 更新字段值数据库不能更新为空,特别是string类型的值。当然上面修改没有问题的代码,当字段值为空时需要把字段借助一个特殊的值进行更新,否则数据库会更新不成功。

2024-09-24 14:08:59 162

原创 CDN之概念,资源分发以及构成讲解

一、什么是CDNCDN全称Content Delivery Network,即内容分发网络。CDN是Content Delivery Network的缩写,它是在全球部署服务器,利用分布式节点技术,即将图片,视频,音频静态资源以及动态资源分发到离用户最近的节点上,这样减少网络的延迟以及提供传输的速度。同时也能够减轻源站的负载压力,提升网站或应用的可用性和安全性。CDN的基本原理是将源站的内容分发到离用户最近的节点上进行缓存,并通过智能路由、负载均衡等技术来保证用户能够快速、稳定地访问到所需资源。

2023-08-11 16:27:04 607 1

原创 Go 之unsafe包

一、unsafe包配合uintptr可以绕过go的安全检查,对内存进行操作二、两个类型。

2023-07-02 21:32:26 271 1

原创 go的协程池

协程池的工作协程会从任务通道中读取任务对象,并执行任务的逻辑。协程池的主要任务是将用户提交的任务对象从入口通道传递到任务通道,并创建指定数量的工作协程来处理任务。任务排队和调度:协程池可以提供任务排队和调度的功能,将任务放入队列中,由工作协程按照一定的策略从队列中取出任务并执行。通过合理地使用协程池,可以提高系统的并发性能和资源利用率,同时简化并发编程的复杂性,使得开发人员可以更专注于业务逻辑的实现。Worker(工作协程):工作协程是协程池中的核心组件,负责从任务通道中读取任务对象,并执行任务的逻辑。

2023-06-24 22:16:10 3002 1

原创 分享一篇go实现的IOS的站外推送 APNS

上面需要用p12的证书,token添加推送手机token。上面是代码,引用的是。

2023-06-24 16:41:10 373 1

原创 CPU和GPU的区别和联系

CPU:是计算机的大脑,处理各种计算任务,控制执行计算机的指令,包括运行操作系统、应用程序和游戏等,CPU与更多计算机组件(例如内存,输入和输出)进行交互以执行指令。例如,在3D游戏中,CPU负责处理游戏逻辑和物理模拟,而GPU负责渲染图形和图像。总的来说,CPU和GPU是两种不同的处理器,它们在设计和功能上有所不同,但也有一些联系。频率:CPU的主频通常比GPU高,因为CPU需要处理各种不同的任务,需要更高的时钟频率。计算任务:虽然CPU和GPU的设计和功能不同,但它们都可以执行计算任务。

2023-06-11 11:46:27 1168

原创 编程静态语言和静态语言区别

动态语言:代码在运行期间才去做类型检测,也就是说你在编码过程随意改变语言类型,也不用给任意变量进行类型定义。静态语言:在代码编译期间就要确定数据类型,即在代码编译阶段就确定了变量的数据类型,编译器会检查变量的类型是否与其所使用的操作符和函数相匹配。缺点:1)在运行时才能发现类型错误,容易出现运行时错误,降低了代码的可靠性和稳定性。2)运行的二进制文件执行速度快 3)程序对运行环境要求低,不需要安装编译环境,执行一套编译环境即可。2)编译时需要把代码的引入的包,源码都编译成二进制文件,显然代码体积很大。

2023-06-11 11:12:19 109

原创 Go之订阅发布

在这个模型 中,消息生产者成为发布者(publisher),而消息消费者则成为订阅者(subscriber),生产者和消费者是。在传统生产者和消费者模型中, 是将消息发送到一个队列中,而发布订阅模型则是将消息发布给一个主题。发布订阅(publish-and-subscribe)模型通常被简写为 pub/sub。最近看了好多文章,讲go的发布订阅。下面是订阅发布的demo。

2023-05-29 09:35:47 234

原创 Go语言的sync包

一、Sync包的WaitGroup方法有时候我们在生硬的使用time.sleep方法,肯定不合适。代码显得不够优雅。而go语言提供了waitGroup方法,使并发任务的同步。我们先来看一段代码:var wg sync.WaitGroupfunc hello() { defer wg.Done() fmt.Println("Hello Goroutine!")}func main() { wg.Add(1) go hello() // 启动另外一个goro

2023-05-21 18:27:06 384

原创 Go原子操作之Atomic包

而互斥锁实现的操作,当前执行Goroutine是会被其它Goroutine抢占的,但是其它的Goroutine在未获取锁的情况并不能顺利执行,从而保证了并发的安全性。unsafe.Pointer类型虽然是指针类型,但是那些原子操作函数要操作的是这个指针值,而不是它指向的那个值,所以需要的仍然是指向这个指针值的指针。底层是cpu芯片级别的支持,绝对是有效的,即使是多核心的cpu 或者多cpu的操作系统,原子操作的保证也是不可撼动。也就是说,一旦一个原子值存储了某个类型的值,那它以后就只能存储这个类型的值了。

2023-05-14 18:18:24 536

原创 纯文本、富文本、超文本

纯文:只保存文字内容,不存储文字的样式文件大小只是只是文字内容的大小案例:txt html css js 等文件都是纯文纯文本文件只能在同一台电脑进行修改样式,便于本机查看,但是保存时不保存样式富文本:不至保存文本内容,还保存文本文字样式这类文件被称为富文本文件,文件大小大于文本内容大小案例:word富文本文件可以存储文字样式,因此在不同的电脑上查看样式是一样的富文本和纯文本比较:相同点:两者都是用来存储文本的不同点:富文本可以存储样式,因此分享给别人也可以看

2022-04-17 18:04:35 2070

原创 七云牛图片上传

1 图片存储方案1.1 介绍在实际开发中,我们会有很多处理不同功能的服务器。例如:应用服务器:负责部署我们的应用数据库服务器:运行我们的数据库应用和数据库服务器 一般 内网文件服务器:负责存储用户上传文件的服务器分服务器处理的目的是让服务器各司其职,从而提高我们项目的运行效率。常见的图片存储方案:方案一:使用nginx(反向代理服务器)搭建图片服务器,网络资源nginx对静态资源 处理非常好,图片服务器nginx可以配置指向静态文件目录的映射 80 ...

2022-04-15 00:16:53 410

原创 推送实现原理

一、Android 上有 GCM (Google Cloud Messaging)iOS 上有 APNs(Apple Push Notification service)Windows Phone 上有 MPNs(Microsoft Push Notification service)。二、但是由于Windows Phone的市场占比不高,所以一般也就没有人会专门做wp系统的推送。至于Android的GCM在国内基本上是不可用的。原因主要有以下两点:1)国内大部分Android手机都

2022-04-10 10:36:50 918

原创 json的Marshal 和 UnMarshal 的

实现Json Marshal:将数据编码成json字符串type Stu struct { Name string `json:"name"` Age int HIgh bool sex string Class *Class `json:"class"`}type Class struct { Name string Grade int}func main() { //实例化一个数据结构,用于生成json字

2022-03-29 20:26:11 1072 1

原创 Accesstoken使用

一、我们先解释一下他的含义: 1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。 2、Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。客户端在token存储在cookie里...

2022-03-24 19:53:50 2934

原创 Strings的一些常见的用法

1. strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 。2. strings.HasSuffix(s string, suffix string) bool:判断字符串s是否以suffix结尾。3. strings.Index(s string, str string) int:判断str在s中首次出现的位置,如果没有出现,则返回-14. strings.LastIndex(s string, str s.

2022-03-18 09:59:26 501

原创 Strings的用法

Comparefunc Compare(a, b string) int按照字典序比较两个字符串,通常情况下直接使用=,>,<会更快一些。Contains,ContainsAny 和 ContainsRunefunc Contains(s, substr string) bool func ContainsAny(s, chars string) bool func ContainsRune(s string, r rune) bool字符串s中是否包含substr,返回tr

2022-03-17 18:07:00 526

原创 go aes各种加密方式(CBC/ECB/CFB)

package mainimport ( "bytes" "crypto/aes" "crypto/cipher" "crypto/rand" "encoding/base64" "encoding/hex" "io" "log")func main() { origData := []byte("Hello World") // 待加密的数据 key := []byte("ABCDEFGHIJKLMNOP") //.

2022-03-09 10:32:53 1369

转载 GoLang之PMG

并发和并行都是为了充分利用 CPU 多核计算资源所提出来的概念,相信我们或多或少都对二者的概念有所了解: 并发指的是在同一时间段内,多条指令在 CPU 上同时执行; 并行指的是在同一时刻内,多条指令在 CPU 上同时执行。 并发程序并不要求 CPU 具备多核计算的能力。在同一时间段内,多个线程会被分配一定的执行时间片,在 CPU 上被快速轮换执行。线程执行的时间片时间耗尽或者任务完成了,会被 CPU 调度换下,执行其他的线程任务。通过这样的方式,可以在宏观上模拟出多个线程同时执行

2022-03-02 13:37:39 646

原创 Linux top 命令的参数详解

简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行

2022-02-25 11:39:06 992

圣诞树.zip

圣诞树.zip

2022-12-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除