MySQL 里面如何线程安全地实现 query and update?我有一个表里面记录了 100 条验证码,网站后端读取一条验证码,然后就把它设置为已读。如果先 select 再 update,就线程不安全,可能会出现两次请求读取同一条验证码的情况。但是如果用锁,会影响性能。
来源:云原生后端社区
你先生成 1000 条入库,项目启动读到内存,每次验证从内存验证,验证通过发送 MQ,或者用多线程写库。只要在 Java 内存中, 而不是从库中判断逻辑,重复不重复其实都挺好判断的。我总结了一个规律,凡事一个业务需要特别复杂高深技术去实现的时候,大部分情况是业务思路跑偏了。找对方向,基本没有复杂的代码。
另外:Django 可以用这个问题,参考地址:https://docs.djangoproject.com/en/1.11/ref/models/querysets/#select-for-update
来源:云原生后端社区
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。