我不為大家貼代碼了,沒有意思,有點多,我主要給大家介紹一下,源碼會上傳CSDN和GIT;我定義了一個ADO.NET操作接口,所有按照接口封裝
1.sqlite數據庫(需要SQLite.Interop.dll,采用.NetStandard2)
作為支持SQL的本地數據庫和內存數據庫使用。當然它是本地的,如果是大型數據庫,請使用redis數據庫。sqlite按照ADO.NET封裝。基本用法和ADO.NET一致。
說說優化:
sqlite文件插入優化分為:1.擴展內存使用(增加cachesize,pagesize)2.使用事務 3.關閉同步 4采用wal模式 。
每一種都有各自產生的后果。值得注意的是wal模式會降低數據刪除的性能。幾種優化封裝成了屬性設置。
2.berkeleydb數據庫(需要c++庫和官方封裝)
berkeleydb是比較優秀的K-V本地數據庫,鍵值數據庫,並且鍵和值的數據部分都是byte[],可以存儲各類數據操作類已經封裝了基本操作,這個不多說了,很簡單
這里分了2層,一層封裝原始的操作,key,value都傳入byte[].再此之上一層泛型類,內部采用messagepack序列化,Key,value都是泛型。
3.postgresql 大型關系數據庫
ADO.NET基本操作
4.通用的數據庫操作
這里使用了我前一段時間的數據庫連接池,根據配置,可以操作任何ADO.NET的數據庫驅動,自己實現連接池。C#驅動的連接池真心不會用。
5.redis數據庫操作客戶端封裝
這個不多說了,ServiceStack.Redis客戶端
項目地址:(另外包含序列化,高效通信,自定義數據庫連接池項目)
https://github.com/jinyuttt/DBQuerySharp.git
再次升級
1.新增redis客戶端操作
2.UDP分報組包重發
3.數據庫連接池重構
4.完善了整個框架流程
5.做成了一個完整的結構,但是沒有完整測試,所有模塊測試通過
6.新增LRU本地緩存,完成整個類型的存儲
7.UDP通信分報組包,,采用協數據重發,協議形式
至此,整個包括了SQL數據庫(連接池任意配置),本地KV數據庫(berkeleydb),本地SQL數據庫(Sqlite),內存SQL數據庫(Sqlite),內存NOSQL數據庫(redis),內存KV存儲(LRU緩存)