《左手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 语法
db.getCollection('xxx').insertOne({})
~.find({'age':{'$gt': 25}})
~.count() # 总数
~.limit() # 限制返回数量
~.sort(k:-1) # 排序 1 正序;-1 倒序
~.updateOne()
# 数据一般不删除,字段改变。
# 数据去重
~.distinct(字段名, 筛选条件)
案例中使用的是Python版本的 pymongo,这个到时候整理到Python范围内。语法没啥区别。