内存数据库

java保留两位小数

江枫思渺然 提交于 2019-11-28 11:28:32
相信大家对内存数据库的 概念并不陌生,之前园子里也有多位大牛介绍过SQL内存数据库的创建方法,我曾仔细 拜读过,有了大致了解,不过仍有很多细节不清晰,比如 : (1)内存数据库是把整个数据库放到内存中的吗? (2)数据都在内存里面,那宕机或者断电了,数据不是没有了吗? (3)据在内存是怎么存放的,还是按照页的方式吗,一行的大小有限制吗? (4)内存数据库号称无锁式设计,SQL是如何处理并发冲突的呢? 相信这些疑问也是大家在思考内存数据库时经常遇到的难题,下文将为大家一一揭开这些问题的面纱,如有不对之处,还请各位看官帮我指出。 一、 内存数据库是如何存储的,只放在内存吗?是把整个数据库放在内存吗? 答案:不是。 如果你还没有看过宋大侠的博客,建议现在就看看。 http://www.cnblogs.com/CareySon/p/3155753.html 在这篇文章中,我想着重引用如下两个信息: (1) 内存数据库其实就是将指定的表放到内存中,而不是整个数据库; (2)内存数据库用文件流的方式组织磁盘中的数据文件; 我再补充一个信息 (3)内存数据库的数据文件分data file和delta file,而且是成对出现; 1、内存数据库其实就是将指定的表放到内存中,而不是整个数据库; 从宋大侠的博客中可以知道,内存数据库的创建过程其实就是将表存放到内存中,而不是整个数据库。下图展示

redis、memcache、mongoDB 对比

痴心易碎 提交于 2019-11-26 16:23:08
从以下几个维度,对 redis、memcache、mongoDB 做了对比。 1、性能 都比较高,性能对我们来说应该都不是瓶颈。 总体来讲,TPS 方面 redis 和 memcache 差不多,要大于 mongodb。 2、操作的便利性 memcache 数据结构单一。(key-value) redis 丰富一些,数据操作方面,redis 更好一些,较少的网络 IO 次数,同时还提供 list,set, hash 等数据结构的存储。 mongodb 支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。 3、内存空间的大小和数据量的大小 redis 在 2.0 版本后增加了自己的 VM 特性,突破物理内存的限制;可以对 key value 设置过 期时间(类似 memcache) memcache 可以修改最大可用内存,采用 LRU 算法。Memcached 代理软件 magent,比如建立 10 台 4G 的 Memcache 集群,就相当于有了 40G。 magent -s 10.1.2.1 -s 10.1.2.2:11211 -b 10.1.2.3:14000 mongoDB 适合大数据量的存储,依赖操作系统 VM 做内存管理,吃内存也比较厉害,服务 不要和别的服务在一起。 4、可用性(单点问题) 对于单点问题, redis,依赖客户端来实现分布式读写