高并发系统内的缓存设计理解

缓存设计必须基于具体业务场景来思考,例如根据业务系统的具体吞吐量、数据量来设计。本文脱离业务场景讨论缓存设计,仅作学习参考。 一、临时缓存最简单的缓存,直接给key设置一个很短的TTL,1分钟或者几分钟,过期直接查DB,不考虑缓存穿透问题。 适合单表数据量少,读取很多的数据。 二、长期缓存适合热点数据,给key设置一个较长的TTL。 数据更新时,通过异步的方式去写入缓存。 异步的方式很多

- 阅读全文 -

go1.22 版本关于loopvar改动的理解

先看一下官网的原话 https://golang.google.cn/blog/go1.22 :The long-standing “for” loop gotcha with accidental sharing of loop variables between iterations is now resolved.简单来说就是循环时候的变量不再共享一个地址,官网给的demo不好观察其中的状况

- 阅读全文 -

gorm使用sqlmock进行sqlite的数据库CRUD单元测试

完整Demo代码本文将会围绕该demo进行讲解:https://github.com/Lichmaker/gorm-sqlite-sqlmock-demomock的作用在单元测试中,我们不希望动到实际的资源,例如DB、第三方HTTP API等。当我们在单元测试时遇到数据库操作,则会用到mock分析所有sql语句, 如果没有执行到预设的语句则会返回错误mock出语句的结果来达到数据库模拟的效果moc

- 阅读全文 -

go-zero使用Gorm时日志追踪trace问题处理

go-zero中的自带model使用起来没有特别舒心(其实功能都满足,主要是不习惯)。Gorm大家都很熟悉,也都用习惯了,但是要把Gorm中的logger与go-zero中的logx串起来,还是需要花一点心思的。注入logger首先是要解决logger。 我这里参考的是Summer老师GormLogger ( https://github.com/summerblue/gohub/blob/G02

- 阅读全文 -

docker client 无法连接 docker daemon 问题处理记录

Ubuntu 系统,原本通过apt安装了docker-ce。 前两天想用一下desktop,又装了一个desktop。不知道是不是安装有问题,结果导致docker client连不上docker daemon了➜ ~ docker ps Cannot connect to the Docker daemon at unix:///home/wuguozhang/.docker/desktop/d

- 阅读全文 -

最新文章

最近回复

  • Josephadash: 照片令人惊艳。谢谢 感受。 海濱長廊 不常看到, 如此积极的氛围...
  • Josephadash: 关注更新, 我明白, 旅游让人相连。由衷感谢 旅行气氛。 胡佛水...
  • Josephadash: 令人愉快的 旅游网站, 请继续 继续努力。致敬. 巴靈格隕石坑 ...
  • Josephadash: 鼓舞人心的 国家随笔! 这是出色的工作。 北領地 不常看到, 如...
  • Josephadash: 写得非常生动。由衷感谢 带来的灵感。 九州核心 富有情绪的 旅行...
  • Josephadash: 氛围绝佳。感谢 真情。 自然走廊 有教育意义的 旅行杂志! 越来越棒!
  • Josephadash: 素材精彩极了。敬意 独创性。 夜景璀璨 有趣的 旅游者平台! 不...
  • Josephadash: 信息丰富的 旅行者博客! 读起来很愉快! 旅遊購物 我高度评价,...
  • Josephadash: 我总是关注 旅游专栏。鼓舞人心掌握出行细节。 拜占庭馬賽克 我高...
  • Josephadash: 有趣的 关于旅行的门户! 不要停下! 石徑古道 读起来像小说。万...

分类

标签

归档

其它