node分布式怎么建立全局锁

发布于 2022-09-06 04:34:04 字数 383 浏览 7 评论 0

前提是:单线程的模型下应该尽量避免写冲突的情况,因为锁会严重影响性能

项目最近遇到一个坑,使用express-session(redis store);
有两个请求同一个客户端会同时发出(暂时解决方法是换一种写法,不让这种情况发生)

GET: /a //执行:req.session.a = 1  ---> 请求返回时写入redis
GET: /b //执行:req.session.b = 2  ---> 请求返回时写入redis

如上面两个请求,就一定会发生冲突,其中一个就会失效。总的来说还是经验不足。

当项目业务逻辑多了,就会出现需要加锁的情况。是应该全力避免还是有加锁的解决方案?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

尝蛊 2022-09-13 04:34:04

基于redis的redlock可以解决node分布式的问题,当然肯定有其它锁的方式。加锁还是尽量避免,毕竟影响性能。

Package:redlock

RedLock算法介绍

内心激荡 2022-09-13 04:34:04

可以用mysql或redis锁啊

假情假意假温柔 2022-09-13 04:34:04

redis内部是可以构建分布式全局锁的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文