摘要: 正常缓存没有数据时会先从DB取数据来回填缓存,而如果瞬间查询过多或者缓存利用率过低。 singlefly 当瞬间过多查询到缓存的空值时就会一起去查询数据库,带给数据库压力变大。这里不能直接用 mutex,如果用了拿不到资源的会自旋等待,拿到后继续查 DB,用 mutex 可能会出现整个逻辑处于一直查 阅读全文
posted @ 2024-06-01 11:17 Fang20 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 问题 在使用缓存中一般都是先看看缓存是否有数据,没有查 db,再回填到缓存。 然后更新时候一般是删除或者回填缓存,再更新 db。 然而因为缓存与数据库是两个独立的系统,很难去保证原子性,所以就产生了一致性的问题。 比如说: 一个查询请求查到了数据库数据,然后准备更新到缓存。 在上一步中间状态时候有更 阅读全文
posted @ 2024-05-31 16:18 Fang20 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 最近我在帮助前端生成微信 JS-SDK 分享签名时,遇到了一个问题,即 wx.config 初始化一直报 invalid signature 的错误,我想总结一下我排查这个问题的过程。 官方文档中已经说了详细介绍了排查过程,如下图所示: 校验工具校验签名过程 首先我在微信提供的签名校验工具中比对了接 阅读全文
posted @ 2023-04-22 14:47 Fang20 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 介绍 OG 标签是 Open Graph Protocol 的缩写,是一种由 Facebook 所定义和推广的元数据协议,用于在社交媒体上显示网页的预览内容。 OG 标签允许网站管理员控制他们网站页面在 Facebook、Twitter、LinkedIn 等社交媒体上的展示形式,可以设置网页的标题、 阅读全文
posted @ 2023-04-01 14:08 Fang20 阅读(571) 评论(0) 推荐(1) 编辑
摘要: 说明 在重构一个 Node.js 项目变为 Go 的过程中,我遇到了一个问题,无法正确复写其中一个使用的 AES 对称加密。原来的项目只需要两个参数就能成功解密,但我现在无法复现这个结果。 CryptoJS.AES.decrypt(encodeData, passphrase) 经过半天的尝试和折腾 阅读全文
posted @ 2023-03-25 22:53 Fang20 阅读(2012) 评论(3) 推荐(1) 编辑