日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php mysql sqlite缓存_使用sqlite作为数据缓存

發布時間:2025/3/15 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php mysql sqlite缓存_使用sqlite作为数据缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在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還要更新一遍,好在差異的地方不多,是可控的。

總結

以上是生活随笔為你收集整理的php mysql sqlite缓存_使用sqlite作为数据缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。