首页 / 缓存 / 使用sqlite作为数据缓存
使用sqlite作为数据缓存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用sqlite作为数据缓存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1899字,纯文字阅读大概需要3分钟。
内容图文
在M系统里,使用的数据库是sql server或者mysql。
整个框架类似于事件驱动,根据当前的硬件信号+数据库状态,判断事件是否满足触发条件,有的话,触发事件执行动作。
这样的框架,需要对每个事件轮询,如果大部分事件不满足触发条件,会导致优先级低的事件在等待触发的延时较长。
相当于 判断条件-》执行-》判断条件-》执行。
其实在执行的时候,就已经知道了下一步的数据状态会更改成什么样子。
最低级的做法,是再创建一个一模一样的数据库,作为未来状态的数据库,那这样在执行的时候,就可以先更新未来数据库,并且同步查询下一个命中的事件。
两个数据库也实在不好维护。
最近在一个项目,尝试实现了一个内存管理数据的未来状态,暂且称为未来内存上下文吧。
前期认为这个未来上下文,还是能满足的,但受限于自己设计的这个上下文,保存的数据太少,相比于一个未来数据库的功能,差的太多。
也曾经考虑是否能用redis作为这个上下文,其实也可以,但与原来对于sql server 或者mysql的映射关系,要维护这之间的数据同步,也是不小工作量。
查过互联网架构的框架,网上对于redis同步关系数据库的内容也太少了,估计现在都是各家实现各家的,以后应该会有这类型的工具或者代码出现,但目前没有。
后来查到了sqlite,这东西跟关系数据库类型,几乎可以跟sql server 或者mysql无缝对接,而且占用资源也很少,只要使用sqlite的库,封装成C++,再封装成类似ODBC的接口,因为项目里对于sql server和mysql是用ODBC连接的。
具体做法:
1.每次启动时,从sql server加载数据,创建一份结构数据同步的sqlite文件,由于需要作为内存上下文的数据量不多,生成sqlite时间大约在1~2s
2.每次事件判断触发条件,查询数据时,都从sqlite中提取,满足触发条件后,立刻执行sqlite的更新操作。
3.等待事件执行完毕后,再更新一遍sql server和sqlite,因为有个别数据,需要执行后才可以得到,这部分的确有数据的差异,所以sqlite还要更新一遍,好在差异的地方不多,是可控的。
使用sqlite作为数据缓存
标签:关系 触发事件 工作 操作 serve odbc 框架 估计 未来
本文系统来源:https://www.cnblogs.com/shawnc24/p/9842761.html
内容总结
以上是互联网集市为您收集整理的使用sqlite作为数据缓存全部内容,希望文章能够帮你解决使用sqlite作为数据缓存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。