avatar
文章
179
标签
47
分类
46

首页
文章
  • 归档
  • 标签
  • 分类
  • ToDo
  • 友情链接
留言板
关于
Echin の 博客
搜索
首页
文章
  • 归档
  • 标签
  • 分类
  • ToDo
  • 友情链接
留言板
关于

Echin の 博客

Joins有趣分享
发表于2024-04-24|更新于2024-04-24|Gorm|Gorm
原来的案例是 商城系统的收藏夹的关系,收藏夹里面需要有收藏用户,产品,产品用有人的信息,因此下面的结构如此体现,这样子设计非常巧妙,使用了belong to 123456789type Favorite struct { gorm.Model User User `gorm:"ForeignKey:UserID"` UserID uint `gorm:"not null"` Product Product `gorm:"ForeignKey:ProductID"` ProductID uint `gorm:"not null"` Boss User `gorm:"ForeignKey:BossID"` BossID uint `gorm:"not null"`} 下面的分别是用户和产品的 123456789101112131415type Product struct { ...
regexp
发表于2024-04-17|更新于2024-04-17|Go|Go
regexp 这个是golang中的一个包,其中包含所有操作列表,如过滤、修改、替换、验证或提取 中文名叫 正则表达式,至于为什么标题要写上面这坨,因为英文逼格比较高 正则表达式 用于使用特别的语法来搜索给定字符串中的特定字符集 语法菜鸟教程万岁 Regex Meaning . 匹配任何单一字符串 ? 前面的字符最多能出现一次(一次或零次),runoo?b可以匹配runob或runoob + 前面的字符必须至少出现一次,runoo+b可以匹配runoooob,runoooooob ***** 前面的字符可以不出现,也可以出现一次或多次,runoo*b可以匹配runoob,runob,runooooob ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结尾位置 | 指明两项之间的一个选择 [abc] 匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。 [a-c] [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。 [^abc] ...
Session与Cookie
发表于2024-04-16|更新于2024-04-16|Gin|Session
Cookie 存储在客户端 但用户第一次访问服务端的时候,服务器会生成一小块数据,然后把这个数据发送到浏览器的Cookie中,浏览器进行存储后,下面的每一次请求都会携带Cookie中的内容一起发送到服务器。 当接收到客户端发出的 HTTP 请求时,服务器可以发送带有响应的 Set-Cookie 标头,Cookie 通常由浏览器存储 Cookie持久化==Cookie==可以设置到期日期,因此可以分为 ==Session Cookie== 和==Persistent Cookie==, 如果没有设置到期日期,则把Cookie设置为会话Cookie,会话Cookie会存储在内存中,浏览器关闭即永久丢失 如果设置了到期日期==Expires 和 Max-age==,那么Cookie会在到期日期后过期 所以无论如何都会过期,只是时间长短而已 Cookie的应用 会话管理 登录,购物车,游戏得分或者服务器应该记住的其他内容 ...
回溯
发表于2024-04-16|更新于2024-11-12|代码随想录|代码随想录
回溯# 终于来到回溯了,树真的😔 理论基础#回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 回溯就会有递归,两者相辅相成回溯一般来说就在递归的下面回溯函数 – 递归函数回溯法 是一个纯暴力的搜索,并不🤡有什么技巧,只是一个遍历所有可能性的过程,因此回溯法并不高效回溯法解决的问题: 组合问题:N个数里面按一定规则找出k个数的集合 切割问题:一个字符串按一定规则有几种切割方式 子集问题:一个N个数的集合里有多少符合条件的子集 排列问题:N个数按一定规则全排列,有几种排列方式 棋盘问题:N皇后,解数独等等 深度优先遍历问题:如图、树的遍历 所有的回溯法都可以抽象为一个树形结构,通过这些树形结构去理解回溯法会比较容易 一般回溯法的框架如下: 1234567891011func backTracking(....args any) { if 满足结束条件{ 收集结果 return } for 选择 in 选择列表 { 处理节点 backTracking(路径,选择列表) // 递归 回溯,撤销处理结果 ...
MQ
发表于2024-04-14|更新于2024-04-14|MQ|MQ
《吃透 MQ 系列》之核心基础篇 - 知乎 (zhihu.com) 深入消息队列MQ,看这篇就够了! - 知乎 (zhihu.com)
Cron
发表于2024-04-10|更新于2024-04-10|Go|Go
Cron 今天看到Cron,发现他源码比较少,就尝试着看一看 robfig/cron: a cron library for go (github.com) 什么是Cron表达式Cron 虽然源码中跟这个表达式关系不是很深入,但是还是得了解一下==Cron表达式== ==| 秒 | 分 | 时 | 日 | 月 | 周 | 年(可选) |== 在大部分使用cron的场景下, - * / ? 这几个常用字符就可以满足我们的需求了。 ==【*】==:每的意思。在不同的字段上,就代表每秒,每分,每小时等。 ==【-】==:指定值的范围。比如[1-10],在秒字段里就是每分钟的第1到10秒,在分就是每小时的第1到10分钟,以此类推。 ==【,】==:指定某几个值。比如[2,4,5],在秒字段里就是每分钟的第2,第4,第5秒,以此类推。 ==【/ ...
Context
发表于2024-04-08|更新于2024-08-13|Go|Go
小徐先生 godoc 一定要去看源码,不难 context# context interface{} cancelCtx struct{} timerCtx struct{} valueCtx struct{} 生成各个context: 本质上就是生成一个子context包裹住父context,实现一个复用的作用 12345678910111213141516171819202122232425func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { c := withCancel(parent) return c, func() { c.cancel(true, Canceled, nil) }}func WithDeadline(parent Context, d time.Time) (Context, CancelFunc) { return WithDeadlineCause(parent, d, nil)}func Wi ...
Channel
发表于2024-04-08|更新于2024-04-13|Go|Go
Channel ==「不要通过共享内存来通信,而应该通过通信来共享内存」== 对于同一个通道,发送操作之间是互斥的,接收操作之间也是互斥的 发送操作和接收操作中,对元素值的处理是不可分割的 发送操作在完全完成之前会被阻塞,接受操作也是这样 元素值从外界进入通道时会被赋值 1234567891011121314151617181920func CalSquare() { src := make(chan int) dest := make(chan int, 3) go func() { defer close(src) // 延迟关闭 channel for i := 0; i < 10; i++ { src <- i // 把元素放入 src 通道 } }() go func() { defer close(dest) // 延迟关闭 channel for i := range src { // 从 src 通道取出元素 dest < ...
事务
发表于2024-04-07|更新于2024-04-07|Redis|Redis
事务 原子性:要么成功,要么失败 一次性:一组命令的集合一次执行 顺序性:入队过程,会按照顺序执行 排他性:执行事务的时候不能被其他东西打扰 Redis单条命令保存原子性,但是事务不保证原子性 Redis事务没有隔离级别的概念,所有的命令在事务中并没有直接被执行。只有发起执行命令的时候才会被执行 开启事务(multi) 命令入队 执行事务 (exec) 1234567891011121314151617multi # okset k1 v1 # queuedset k2 v2 # queuedexec # output : [ { "value": "PONG" }, { "value": "PONG" }, ...] 每次执行完事务需要重新开启事务才能做新的事务 放弃事务12345multi # ok set 1 1 # queuedset 2 2 # queueddiscard # ok exec # output : ERR EXE ...
Redis-Bitmaps
发表于2024-04-07|更新于2024-04-07|Redis|Redis
Bitmaps 位图 位运算 只有 0 和 1 主要是可以统计一些 只有两面性的事务 登录和未登录,打卡和未打卡,活跃和不活跃 效率更高! 一些样例123456789101112131415# 假设现在是 存储 一周内的打卡情况# 这个是按位来存储的setbit bit 0 0setbit bit 1 1setbit bit 2 1setbit bit 4 0setbit bit 5 1setbit bit 6 1setbit bit 3 0# 查看某一天的打卡情况getbit bit 1 # 周一打卡#统计打卡的天数bitcount bit 起始 末尾
1…8910…18
avatar
Echin-h
keep learning
文章
179
标签
47
分类
46
Follow Me
公告
love is accumulated, not love, too.
最新文章
北京租房2025-07-21
Linux命令补充2025-02-27
非唯一索引加锁规则实操2025-02-19
sls日志接入2025-01-18
操作系统概论2024-12-08
分类
  • CD/CI1
  • CI/CD1
  • Gin10
  • Go26
  • Gorm9
  • JAVA2
  • Linux4
  • MQ1
标签
flamgo CI/CD 简历 代码随想录 ngrok casbin 分布式锁 配置文件 Go 八股文 CD/CI JAVA语法 oauth Gin git vim rpc none NX青训营 flamego 设计模式 Linux docker JWT pinnacle 我爱记单词 sls 计算机网络 博客 Mysql MQ 前端 北京北京 随笔 Gorm 设计原则 k8s 算法 Session 图解HTTP
归档
  • 七月 20251
  • 二月 20252
  • 一月 20251
  • 十二月 20243
  • 十一月 20243
  • 十月 20248
  • 九月 20249
  • 八月 20246
网站资讯
文章数目 :
179
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Echin-h
框架 Hexo|主题 Butterfly
today is a beautiful day
搜索