摘要: golang中线程安全的两种数据结构: channel sync包里的数据类型 atomic包里的数据类型 保证线程安全可以使用sync包下面的 互斥锁sync.Mutex 读写锁sync.RWMutex 原子操作sync.atomic map的底层原理 count:key的数量 flags:是否进 阅读全文
posted @ 2024-12-24 19:36 教诲you 阅读(27) 评论(0) 推荐(0) 编辑
摘要: golang mutex(互斥锁) 1.锁最本质的作用 保证原子性 2.mutex 使用原则 适用于并发编程,尽量减少加锁区域的逻辑 3.mutex的局限性 仅限于单个进程内操作 sema(信号量,semaphore的简称)是一种用于并发控制的机制 资源计数:信号量维护一个资源计数。这个计数表示当前 阅读全文
posted @ 2024-12-19 21:06 教诲you 阅读(20) 评论(0) 推荐(0) 编辑
摘要: RedisLock获取 Redis 锁,接受锁的key和过期时间作为参数。通过构造带有特定前缀的键名,使用 Redis 的SetNX操作尝试设置键值对,如果成功则表示获取锁成功。 RedisUnLock释放 Redis 锁,接受锁的key作为参数。构造带有特定前缀的键名,使用 Redis 的Del操 阅读全文
posted @ 2024-12-18 16:27 教诲you 阅读(48) 评论(0) 推荐(0) 编辑
摘要: docker:跨平台,快速运行应用run,快速构建应用build,快速分享应用share docker + air可以实现热更新,配置.air.toml文件,可以使用本地dockerfile构建,也可以使用远程docker hub中的镜像构建 客户端client(docker-cli): docke 阅读全文
posted @ 2024-12-12 00:30 教诲you 阅读(6) 评论(0) 推荐(0) 编辑
摘要: jwt: 场景:前后端分离、第三方API交互等 生成jwt + 解析jwt: package main import ( "fmt" "time" "github.com/dgrijalva/jwt-go" ) type MyClaims struct { Username string `json 阅读全文
posted @ 2024-12-09 23:03 教诲you 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 在数据库开启状态下,打开navicat软件,点击连接,选中MySQL,自定义名字,输入本地数据库的密码; 右键创建好的数据库,点击新建数据库,自定义名字后,打开新建的数据库,右键运行sql文件,导入文件即可。 MySQL操作: net start mysql启动 net stop mysql关闭 m 阅读全文
posted @ 2024-12-07 16:30 教诲you 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1.选中项目文件,打开命令行(鼠标右键,Git Bash Here) 2.打开终端后,输入指令进入master分支(以哪个为基础的分支) git checkout master 3.拉取远程master的最新项目到本地master分支 git pull 4.创建新分支,并把当前分支内容复制到新分支中 阅读全文
posted @ 2024-12-07 16:04 教诲you 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 心跳检测的基本原理是通过固定频率的信号发送,来确保节点之间的通信链路是畅通的。如果某个节点在一段时间内没有收到心跳信号,就可以判断该节点可能已经失效,从而采取相应的处理措施。 处理超时情况: 重试机制;报警机制;自动修复。 应用场景: 分布式数据库:在分布式数据库中,心跳检测用于监控各个数据库节点的 阅读全文
posted @ 2024-12-07 14:39 教诲you 阅读(90) 评论(0) 推荐(0) 编辑
摘要: ​ 生成SSH: 打开终端,输入命令: ssh-keygen -t rsa -C "自定义注释内容" 连续三次回车之后,在C盘用户目录下生成 .ssh 文件,用vscode打开其中的id_rsa.pub文件,将公钥复制到设置中的SSH公钥处,github上也可以同时添加 添加成功,接下来就可以创建一 阅读全文
posted @ 2024-12-07 14:29 教诲you 阅读(135) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示