不想频繁操作数据库,先将要存的数据存储到缓存中,当缓存中数据到达一定条数之后,开始存数据库,或者一定时间之后开始存数据库
不清楚代码怎么写,希望各位提供实现思路,最好能够有代码,谢谢
楼可以考虑看看内存库相关产品,
推荐个H2。一起我们项目组用过。但不是我用
资料:http://www.doc88.com/p-20155937846.html
这部分我接触的比较少,
我猜想,原理应该跟spring的ioc差不多,
难点可能就是内存库物理库同步策略和内存库的合理分配等等
如果自己写,用些HashMap,List之类的做成静态,实时修改,定时同步。
应该就能简单实现
楼主可以测试一下,你到达一定数量的时候,批量入库节约多少时间,放内存和入库时间差多少?如果库中的数据量不是特别大,建议直接入库,否则难度增加很多
我猜测楼主的意思是:
当数据积累到一定数额后,比如说100条,再一次性批量写入数据库。
而不是来一条、写一条。
有没有考虑 当数据在缓存还没有存储的时候机器瘫痪怎么办?相当于丢数据了
缓存数据,主要解决的问题是读取,如果插入也缓存,就可能面临丢失数据的可能性,如果数据不是很重要,允许一定程序上的丢失,先放缓存,后写入数据库,可避开写入数据的高峰期而已
对于并发量不大的写场景,完全没有必要这么做,增加代码复杂度,并且这种处理方式稳定性不行。一旦宕机数据就要丢失。
读可以缓存,不会增加复杂度。大部分的场景应该也是读多写少。