NoSQL--查询存储、修改以及管理

MongoDB

  1. MongoDB数据库没有join,所以在MongoDB中,这种关系数据是在服务器范围外显式关联起来的。如DBRef。
  2. 查询时与SQL类似的where语句中没有like,所以使用更为强大的正则表达式进行查找匹配。
  3. MongoDB查询文档时数据类型敏感的。即{ movie_id : "1111" } 和{ moive_id : 1111 }是不同的,前者是字符串类型,后者是数字整型。
  4.  注意分组函数。分组函数很方便,但是无法再分片中使用,需要MongoDB中的MapReduce工具才能用分组函数。
    1. 分组操作:(db.****.group(**))
      • Key:分组字段
      • initial:集合初始值,count。
      • cond:过滤集合中的查询文档。
      • reduce:聚合函数。
      • keyf(可选)
      • finalize(可选)
    2. 但是分组操作中集合的键的个数不能超过1万,所以要使用MapReduce。
  5. Map函数和Reduce函数是自己定义的,写好后调用。
  6. 文档数据库形式上没有schema,可以将不同的文档存储到同一个集合中。
  7. CouchDB使用MVCC(多版本并发控制),能够避免引入锁机制。版本号是核心。但是MongoDB中,是不会维护文档版本的,二是更新文档。
  8. MongoDB数据库的导入导出工具:mongoimport,mongoexport,mongodump是热备。

HBase

  1. 利用get函数。
  2. HBase包含的高级查询技术并不多,但是它的索引和查询功能可以借助Lucene和Hive进行扩展。
  3. HBase不是完全的弱schema的,它支持比较宽松的schema,主要表现为列族定义。
  4. HBase数据更新时复写记录的新版本,而不是原地更新记录。其默认保存最新的三个版本。

Redis

  1. 实例。 
  2. Redis通过将数据刷到磁盘上来完成它所持有的数据的持久化。要备份数据库只需要复制Redis的DB文件,然后配置另一个实例来使用它就行。

你可能感兴趣的:(NoSQL)