1.一些数据库的基本概念与sql的不太一样,数据库的表对应db的集合,行对应文档,字段对应域等等。db多了一个正则表达式的数据类型 2.字符串采用UTF-8编码,使用二进制数据存储,可以存储视频,图像,音频 3.mongodb创建账户时需要声明账户对于指定或所有数据库所拥有的读写权限,网上没有找到如何更改账户权限的方法,只有创建时设置的方法 4.是一个介于关系和非关系之间的数据库,以键值对存储数据。但也有聚合,索引,排序的功能。 5.查询语句的方式与之前的sql不一样,但不支持子查询,解决方案是先读出数据然后再进行计算 6.可以把不同结构文件存储在同一个数据库中 7.分布式文件系统
1.redis是一个key-value的数据库,且对于非集合key来说不能有重复命名,对于相同的key输入时会覆盖掉旧key的值 2.对于集键值对集合来说,用哈希表进行实现,增删改查的复杂度都为o(1),可以按照分数排序或者是字典序返回成员值 3.通过内嵌支持lua脚本输入 4.支持存储字符串,链表,集合,有序集合,哈希类型的数据。 5.提供java,c,C#,PHP等多语言客户端,使用方便。
1.从查找来说,mongoDB更偏向于关系数据库,他的查询支持正则表达式的检索,还有条件查询等等。但redis和memcached是完全偏向于key-value,仅支持的是利用key来查找内容。redis还多了一个key的集合(set)列表(list)概念,一个key代表一个集合,集合内的元素数据类型可以不一样,但不能出现重复数据。mongodb的数据概念更偏向于关系型数据库,有类似的文档等概念。 2.三个数据库都支持原子操作,redis的所有操作都是原子性的, 3.三个数据库的数据类型,总体来说redis和mongodb更为丰富一些,redis支持二进制的很多数据类型,但redis和memcached没有日期类型以及时间函数。mongodb有。 4.redis通过哈希来维护key-value存储,支持数据持久化,支持主备机数据备份。mongodb存储是用的MMAPV1引擎里面的一些功能进行存储的,也支持数据持久化。可以进行数据库备份。memcached,自由开源的,高性能,分布式内存对象缓存系统,并不支持持久化 5.性能方面:从网络资料来看,memcached开源,且扩展性更高,服务器协议简单,支持多种语言,宜处理数据量较小的内容,对于数据量较小的测试而言读速率在三者中排在第二位。redis性能搞,读速率快,在多个测评博客中的读速率都是最高的,但也有少量博客在指定平台下的测试中有mongodb的读速率高于redis的情况。而网上普遍的压力测试结果而言mongodb的读写速率都是出于三者中最低的那一个,且占用内存很高,是redis的几十倍。但从写数据的速率来看三者的效率是差不多的。 6.从增删改查的操作来说,三个数据库都是大同小异。