C# 实现的缓存库 WeavingDB

Apache
C#
跨平台
2018-12-01
dreamsfly

WeavingDB

WeavingDB

为满足C#项目的特殊使用与简单部署,而开发此WeavingDB。

  • 1.支持K-V方式。支持通配符方式匹配KEYS

  • 2.支持JSON数据的条件查询的内存缓存库。(目前JSON库部分,创建,清空,插入,批量插入,查询,有条件删除,修改)。

  • 3.可以设置最后一次访问时间的过期时效,例如:A数据,最后一次访问是1小时以前,设置过期为60分钟,此时A数据将被清理,如果A数据在60分钟内再次被访问则不清理。也可以设置永久不过期。

  • 4.JSON库,需要先创建库,然后就可以插入数据了,数据库表的列为自动适应。第一次插入的数据即为默认列,以后插入的数据,可以增加字段,也可以减少字段(不需要重新建立表)。但是字段类型不能更改,如果原本的列名的类型改变,会引起类型错误。如果要改变原有字段类型,只能清空库后,从新建立库。

  • 5.支持KV数据的持久化,超时或Remove后并不会彻底删除数据,而是从内存中删除,如果再次get,则从持久化的内容中读取。

  • 暂不支持主从部署和TABLE数据持久化,当我想到一个高效模型,我会更新这两类内容。

  • 6.数据通信部分使用WeavingSocket架构,通信部分架构地址:https://gitee.com/dreamsfly900/universal-Data-Communication-System-for-windows

  •  

 K-V运行效率测试,万次读写1.8秒,配置SURFACEBOOK 一代 8G 128G

K-V运行效率测试,万次读写1.8秒,配置SURFACEBOOK 一代 8G 128G

使用说明

K-V操作

 DBClient dbc = new DBClient("127.0.0.1", 18989, "admin", "123123");
           dbc.open();
           dbc.Set("asdasd", "1");
            int i = 0;
            String str2 = dbc.Get("asdasd");string [] keys=   dbc.GetKey("as?asd");//通配符?一个匹配字符
            keys = dbc.GetKey("as*");//通配符* 表示,多个模糊匹配             dbc.close();
 Hashtable ht = new Hashtable();
            ht.Add("123123","afasdfasdf");
            ht.Add("12312311", "afasdfasdf");
            ht.Add("1231231221", "afasaasdfasdf");
            ht.Add("123123122199", "afasaasdfasdf");
           bool bb= dbc.SetAll<string>(ht);//批量Set
            dbc.close();

JSON库操作

  dbc.open();
            user u = new user();
            bool bbc = dbc.inserttable("ddd", u);
            dbc.Createtable("ddd");
         
            bbc=   dbc.inserttable("ddd", u);


            //每次插入一组数据
            Listlist = new List();
            
            int i = 0;
            while (i < 10000)
            {
                u = new user();
                u.id = i;
                list.Add(u);
                i++;
            }
            DateTime dt = DateTime.Now;
            bbc = dbc.inserttable("ddd", list.ToArray());
            DateTime dt2 = DateTime.Now;
            listBox1.Items.Add("万条数据插入" + (dt2-dt).TotalMilliseconds + "毫秒");

            int count = 0;
             dt = DateTime.Now;
            
            var rrs = dbc.selecttable>("ddd","id<100",0,"",0,0,out count);
            
             dt2 = DateTime.Now;
            listBox1.Items.Add("数据SQL查询" + (dt2 - dt).TotalMilliseconds + "毫秒");

            dbc.Removetable("ddd");
的码云指数为
超过 的项目
加载中

评论(9)

小小一coder
只能看看只言片语去推测
AA海纳百川
AA海纳百川
来支持下
看看不说话-行不
看看不说话-行不
吼吼吼吼
无夜
无夜
看起来很牛X
l
l_1196
厉害了
代码搬运工er
代码搬运工er
厉害了
产品哥
产品哥
厉害了,可以看看源码。感谢
宇润
宇润
壮哉我大C#
d
david10000
厉害了

暂无资讯

1
回答
【开源早报】Flutter 1.0 正式发布 | 微软开源 WPF | Edge 浏览器恐被取代

2018.12.5开源早报 【综合新闻】 1.微软开发者大会:VS 2019 Preview 发布;Windows UX 主要技术开源 2.微软正在打造基...

2018/12/05 09:05

没有更多内容

加载失败,请刷新页面

没有更多内容

2018 年度新增开源软件排行榜之国产 TOP 50

2018 年开源中国社区「新增」开源软件排行榜之国产 TOP 50 终于发布了! 榜单根据 2018 年开源中国社区新收录的开源项目的关注度、活跃度,以及所属分类整理而来,相信在一定程度上反映了国内...

01/23 09:43
713
3

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部