当前位置: 首页 > 软件库 > 程序开发 > 缓存系统 >

WeavingDB

C# 实现的缓存库
授权协议 Apache
开发语言 C#
所属分类 程序开发、 缓存系统
软件类型 开源软件
地区 国产
投 递 者 金霄
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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");
 相关资料
  • 我有一个带有guice但没有spring的应用程序。我有: 我有两个实现: 我希望能够将缓存服务注入所有其他服务,并且希望在缓存服务中注入正常服务。问题是,当我想在其他类中注入服务接口时,实现是随机选择的。有没有办法解决这个问题?

  • 本文向大家介绍springboot的缓存技术的实现,包括了springboot的缓存技术的实现的使用技巧和注意事项,需要的朋友参考一下 引子 我门知道一个程序的瓶颈在于数据库,我门也知道内存的速度是大大快于硬盘的速度的。当我门需要重复的获取相同的数据的时候,我门一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据库查询或者远程方法的调用上,导致程序性能的恶化,这更是数据缓存要解决的问题。

  • 我试图以某种方式“调试”使用spring boot cache注释的应用程序,为此,我想知道如何找到实际实现接口Cacheable、CacheConfig等的类。 我的想法是确认缓存正在被填充、清空等。

  • 本文向大家介绍集成Spring Redis缓存的实现,包括了集成Spring Redis缓存的实现的使用技巧和注意事项,需要的朋友参考一下 这里的缓存主要是用于 Service 层的,所以下面的配置,都是针对 service 模块的。 本文来自内部分享,对特殊信息进行了简单处理。 本文都是在以缓存来讲 Redis 的使用,实际上 Redis 不仅仅用于缓存,本身还是 NoSQL 数据库,大家可以自

  • 本文向大家介绍Java实现LRU缓存的实例详解,包括了Java实现LRU缓存的实例详解的使用技巧和注意事项,需要的朋友参考一下 Java实现LRU缓存的实例详解 1.Cache Cache对于代码系统的加速与优化具有极大的作用,对于码农来说是一个很熟悉的概念。可以说,你在内存中new 了一个一段空间(比方说数组,list)存放一些冗余的结果数据,并利用这些数据完成了以空间换时间的优化目的,你就已经

  • 本文向大家介绍Java LocalCache 本地缓存的实现实例,包括了Java LocalCache 本地缓存的实现实例的使用技巧和注意事项,需要的朋友参考一下 源码地址: GitHub 使用场景 在Java应用中,对于访问频率高,更新少的数据,通常的方案是将这类数据加入缓存中。相对从数据库中读取来说,读缓存效率会有很大提升。 在集群环境下,常用的分布式缓存有Redis、Memcached等。但

  • 我们正在使用firebase实时数据库,我正在考虑在本地实现一个缓存来减少重复调用。

  • 问题内容: 我试图使用LinkedHashMap实现LRU缓存。在LinkedHashMap的文档(http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html)中,它表示: 请注意,如果将密钥重新插入到映射中,则插入顺序不会受到影响。 但是当我做以下推 输出是 这表明重新插入确实影响了订单。有人知道任何解释吗? 问题答