下NoSQL产品类型繁多,各有各的特点,再加上关系型数据库,貌似我们可选择的东西太多了。如诗言“乱花渐欲迷人眼”,在我们选择存储产品的时候,应该从哪些方面进行考量呢?下面学步园小编来讲解下如何选择最适合你的NoSQL数据库?
如何选择最适合你的NoSQL数据库
NoSQL四大类
1.key-value存储
ExamplesTokyoCabinet/Tyrant,Redis,Voldemort,OracleBDB
典型应用场景内容缓存,主要用于处理大量数据的高访问...
阅读全文
访问频率控制模块的作用是限制客户端对服务器的访问频率,比如某个IP对某一页面在1分钟内访问一个页面超过100次,那么就返回给客户端一个页面让其输入验证码等。相信经常访问Google的同学都有过被要求输入验证码的经历。下面学步园小编来讲解下怎样用Redis构建访问频率控制模块?
怎样用Redis构建访问频率控制模块
原理概述:
程序会确定一个时间片,这个时间片越小,控制精度越高。一个访问控制涉及到多个时间...
阅读全文
很多团队在使用NoSQL的时候,都采用了比较保守的双定策略,将数据在NoSQL和MySQL中进行双写,这个双写可能是直接应用层写两次,可能是先写一个,再利用一些同步机制将数据同步到另一个。下面学步园小编来讲解下怎样实现将CouchDB中的数据同步到关系型数据库?
怎样实现将CouchDB中的数据同步到关系型数据库
CouchDB的问题
首先,作者不是由于我们上面说的原因而要做这件事。而是由于CouchDB无法满足他们的一些需...
阅读全文
KyotoTycoon(以下简称KT)是TokyoTyrant的作者MikioHirabayashi的系列作品之一,KT是一个数据库网络层服务,它提供一个插件机制,可以挂载几乎所有的数据库存储设备。下面学步园小编来讲解下怎样用KyotoTycoon挂载LevelDB存储?
怎样用KyotoTycoon挂载LevelDB存储
1.安装LevelDB
先获取源代码
$svncheckouthttp://leveldb.googlecode.com/svn/trunk/leveldb-read-only
修改Makefile,加上-fPIC选项
+...
阅读全文
毫无疑问,正如每一种NoSQL都有其适用场景,这里每一种访问需求都有不同的答案,针对用户的访问需求做决定和测试产品是唯一正确的选择。下面学步园小编来讲解下Appendonly和Reuseblock之间该怎么选择?
Appendonly和Reuseblock之间该怎么选择
简单来说,antirez的观点就是:
Appendonlybtree不会出现数据不一致的情况。因为它是只追加的,没有重用文件中的失效块。因为在blockI/Olayer,内核会做一些IO上的调度...
阅读全文
Redis是高效的内存数据库,FUSE是Linux内核的一个模块,利用它可以用自定义的底层存储创建自己的文件系统(如之前提到过的MongoDB的gridfs-fuse)。下面学步园小编来讲解下Redis存储系统的文件系统实现方法有什么?
Redis存储系统的文件系统实现方法有什么
使用方法
安装好redisfs后运行下面命令,指定Redis服务器的host和port,指定挂载目录,即可在此目录下挂载一个以Redis作为存储支持的文件系统
redisfs--...
阅读全文
CouchDB与MongoDB一样是文档存储,他们在很多方面都很相似。简单的说,就是MongoDB的查询是动态查询,可以在已有数据上进行任何规定条件的查询,当然,为了使我们的查询更快,需要合理的设计索引。下面学步园小编来讲解下CouchDB与MongoDB在查询操作上有哪些区别?
CouchDB与MongoDB在查询操作上有哪些区别
MongoDB和CouchDB都是面向文档的数据库,它们都使用JSON文档格式,它俩通常都被看作是NoSQL数据库,并且现在...
阅读全文
在数据库中存储树形结构的数据,这是一个非常普遍的需求,典型的比如论坛系统的版块关系。在传统的关系型数据库中,就已经产生了各种解决方案。下面学步园小编来讲解下怎样利用关系型数据库和文档型数据库作为存储的几种设计模式?
怎样利用关系型数据库和文档型数据库作为存储的几种设计模式
A.关系型数据库设计模式1
idnameparent_id
1ANULL
2B1
3C1
4D2
优点:结构简单易懂,插入修改操...
阅读全文
MongoDB本身有两种整数类型,分别是:32位整数和64位整数,但旧版的PHP驱动不管操作系统是32位还是64位,把所有整数都当做32位整数处理,结果导致64位整数被截断。下面学步园小编来讲解下PHP操作MongoDB时有哪些问题?
PHP操作MongoDB时有哪些问题
为了在尽可能保持兼容性的前提下解决这个问题,新版PHP驱动加入了mongo.native-long选项,以期在64位操作系统中把整数都当做64位来处理,有兴趣的可参考:64-bitintege...
阅读全文
MongoDB采用了磁盘空间预分配的机制,为了避免磁盘碎片以及使用mmap后造成的近一步的内存碎片,但是随着数据的增删除改操作,数据文件不可避免的会产生空洞,造成磁盘空间和内存的浪费。下面学步园小编来讲解下怎样压缩MongoDB的数据文件?
怎样压缩MongoDB的数据文件
1.通过repairDatabase整理数据文件
repairDatabase是MongoDB内置的一个db上的方法,调用这个方法,MongoDB会扫描db中的所有数据,并将通过重新...
阅读全文