实时显示库存,尽量减少脏数据的引起的不方便

fir01 发布于 2013/09/09 11:09
阅读 352
收藏 1

问题:公司需要实时显示自己的库存给客户的浏览器端,客户1w,后台备用查询更新的数据量不会过10W条,查询频率很高。

系统环境:java,mysql,jboss7

目前的解决方案:目前库存系统只是给少量客户使用的,就是在数据库加一列存储uuid做为锁,每次更新后更新锁,只有获取最新锁才能更新。其实就是一个一次性锁,只有拿到最新的那把锁才能进行更新操作。

目前的缺陷:虽然避免了写看到的脏数据,但是读依然存在读脏数据,并经常提示“请重新获取锁",客户处理效率低。客户已经上w了,总是手工查询数据库,客户效率极低,后台数据库处理也低了。

预想计划:客户端每隔2秒自动异步请求,将库存数据全部读到内存,更新首先内存时,首先更新到内存并快速返回给客户端,更新时同时发一条异步消息,让另外一个异步程序将”更新数据“从内存更新到mysql数据库;或者当更新数据到一定量时,flush一下将更"新的数据"同步到数据库去。

问题:是否有内存数据库能直接配置下自己就能同步给mysql?个人只是预想,解决过的朋友给请给些建议,非常感谢。

内存数据库问题

http://www.oschina.net/question/102698_12700

redis与数据库同步的问:http://www.oschina.net/question/558240_110684

加载中
0
xmut
xmut
MySQL主从复制:从机用来读取数据。
0
fir01
fir01

看到有人有类似的需求:

redis 搭配 SQL 实践问题

http://segmentfault.com/q/1010000000177049

http://www.oschina.net/p/mysql-syncer

这里还有一篇文章,大意是“如果你可以接受定期从redis导入到mysql,那基本上表示你的业务就不需要mysql,因为redis不仅仅是缓存,塞给它的数据是持久化到硬盘的,你下次直接从redis读出来就行了。

我的需求只是为了展现实时库存,其他的业务的数据还是想放在mysql,不为别的,只因为熟

http://segmentfault.com/q/1010000000150049

0
王瑞平
王瑞平
读写分离
返回顶部
顶部