NutzCN Logo
问答 数据库记录频繁更新的情况下,如何有效减少这种更新呢
发布于 2506天前 作者 qq_ef6310b4 3376 次浏览 复制 上一个帖子 下一个帖子
标签:

本人缓存框架使用的是ehcache,数据库为mysql,现在的问题是,数据库记录由于人为操作原因,一段时间内,更新操作非常频繁。查看日志,mysql的io操作非常频繁。
据本人所知,内存型数据库本身就可以解决这个问题,像mongo,同时ehcache都不必使用了。
请问有没有现成的轮子,可以解决本人的问题呢?

10 回复

频繁更新的是一些什么数据呢?

游戏服务器,例如用户属性,如元宝之类的。
游戏服务器的数据,在玩家频繁操作、或者活动结算的时候,几乎都会存在大量的服务器数据更新的问题。

redis欢迎你

意思是redis做缓存配合mysql?可我ehcache做缓存也没问题啊。而且,也没有解决数据频繁更新时,频繁操作数据库的性能问题啊。
还是说redis代替mysql?那为什么不采用更方便的mongodb呢?

那你用mongodb好了

全部改成mongodb代价有点大啊......又要动底层动得一塌糊涂了.....
因为之前我考虑这个,自己做过的实现就是,自己弄个缓存池,每次更新只更新缓存,同时记录更新的时间。
然后定时器,每隔一定时间,把缓存中更新的数据,持久化到数据库。
但是,这个解决方案面临的主要问题是,一旦应用重启,容易面临数据丢失的问题。除非我把这个缓存池跟应用彻底分开......
但是代价也太大了....又要改底层了......
我想问的是,那,有没有已有的轮子,代替我那个粗略的实现.....

redis就不会丢啦

因为我看到网上的redis配合mysql的实现,数据更新的时候,同时更新myslq和redis,这.......
莫非,通过redis,我可以只更新redis中的数据,然后redis中的数据可以通过配置,自动到更新到mysql?

当然不会,为啥总想着存到mysql呢, 把这些热数据放在redis进行存储嘛

您的意思是,redis代替mysql做为db?
因为作为游戏服来说,用户数据几乎都是热数据额.....

添加回复
请先登陆
回到顶部