有你在真好 的个人博客
数据库账户余额高并发存储更新方式
阅读:2295 添加日期:2021/3/27 23:26:52 原文链接:https://www.toutiao.com/item/6395402293646197250/

在产品设计的过程中,会将常遇到虚拟货币,比如直播,百度文库值等等。

这一类数据在数据存储过程中会遇到并发请求的问题,如何保证两次请求依次执行是一个需要解决的问题。比如用户经验的增加,等也属于这类问题。

在实际工程中,我主要会用到两种方式去解决和类问题。一种是利用redis强大的单线程操作能力,incrby 和decrby 可以很方便的处理这类问题,然后定时更新到数据库中即可。而且可满足高并发的请求,存储速度很快。

另一种存储方式是在数据库中增加一个版本号字段,这个字段用来保存当前余额的版本号,在更新余额之前获取版本号信息,在更新时增加判断条件,两个版本号必须相同,更新的同时将版本号+1,这样就可以保证两个请求同时到来时只会执行一个,失败之后只需要重新请求即可。

这就是我在工程实践中遇到的诸如此类的字段更新方式。

而例如点赞数量,查看数量等则无需考虑,每次有了新点赞随机增加10以内数量即可,无需考虑并发。

以后会不定期更新前后端知识,希望大家支持。

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号