数据库账户余额高并发存储更新方式

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

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

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

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

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


分享到:


相關文章: