《左手MongoDB,右手Redis》[x] 书籍 [ ] 讲座 [ ] 视频
作者 出版社
阅读日期 更新日期
相关链接 备注

之前整理过MongoDB,趁着这次手不生,记录在此。

配套视频
https://www.yuque.com/kingname/wtago8/xwg3gb

源代码
https://github.com/kingname/SourceCodeofMongoRedis

基础概念

MongoDB是非关系型数据库,文档型数据库

noSQL——not only SQL

关系型数据库怎么了

关系型数据库可能存在的问题:

  • 处理高并发写入复杂
  • 上亿数据查询慢
  • 分库 分表 大规模数据难整理
  • 分表 分库 变更需求修改困难
  • 修改表结构困难

有哪些非关系型数据库

非关系型数据库的大致分类:

  • key-value类型。比如redis 读写性能优秀
  • 文档类型。MongoDB 结构不严格
  • 列存储。Hbase分布式
  • 图。Neo4J 社交 推荐系统

MongoDB怎么了

MongoDB结构: 库 集合 文档 字段。特点是不需要预定义表结构,字段可以任意变动。并发写入性能好。

Redis怎么了

用途多:

  • 缓存。k-v 字符串 哈希表,告诉缓存
  • 队列。有序集合,哈希表
  • 去重

安装使用MongoDB

安装不必说,可以用 docker起一个服务
连接推荐使用Robo 3T

MongoDB 语法

  1. db.getCollection('xxx').insertOne({})
  2. ~.find({'age':{'$gt': 25}})
  3. ~.count() # 总数
  4. ~.limit() # 限制返回数量
  5. ~.sort(k:-1) # 排序 1 正序;-1 倒序
  6. ~.updateOne()
  7. # 数据一般不删除,字段改变。
  8. # 数据去重
  9. ~.distinct(字段名, 筛选条件)

案例中使用的是Python版本的 pymongo,这个到时候整理到Python范围内。语法没啥区别。