《新时期的Node.js入门》学习日记-知识补充

0xGeekCat · 2020-9-3 · 次阅读


MongoDB和Redis简介

NoSQL

NoSQLNot Only SQL不仅仅是SQL,是一项全新的数据库革命性运动。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入

NoSQL数据库在👇情况下比较适用

  • 数据模型比较简单
  • 需要灵活性更强的IT系统
  • 对数据库性能要求较高
  • 不需要高度的数据一致性
  • 对于给定key,比较容易映射复杂值的环境

MongoDB

MongoDB由C++语言编写,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能

MongoDB旨在为Web应用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档,数据结构由键值对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档、数组及文档数组

MongoDB天生就和Node有很好的相似性

安装MongoDB

screenshot

启动mongod

screenshot 1

启动成功之后打开命令行窗口,输入mongo,就可以进入MongoDB的命令行界面

screenshot 2

常用命令

数据库相关操作

  • use [DBName]:切换数据库,如果是不存在的数据库,那么将会创建
  • show dbs:显示所有的数据库,如果新建的数据库为空,show无法将此数据库显示出来
  • db / db.getName():显示当前使用的数据库
  • db.dropDatabase():删除当前数据库

screenshot 3

Collection相关操作

collection可以理解为相似数据的集合,和关系型数据库中table的概念相似

  • show collections显示当前数据库中的所有collection
  • db.createCollection(name)创建新的collection
  • db.[collection].drop()

screenshot 4

curd操作

  • db.[collection].insert(option):向collection插入新数据
  • db.[collection].save(option):向collection插入新数据
  • db.[collection].update(option):更新collection中的数据
  • db.[collection].remove(option):删除collection中的数据

查询

  • db.[collection].find(option)显示collection中的所有数据,option表示筛选条件

screenshot 5

Redis

Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,比如字符串、散列、列表、集合、有序集合、范围查询、bitmaps、hyperloglogs和地理空间索引半径查询。 Redis内置了复制、LUA脚本、 LRU驱动事件、事务和不同级别的磁盘持久化,并通过Redis哨兵和自动分区提供高可用性

Redis的特点

  • mongodb相同,属于非关系型数据库
  • 和大多数将数据存储在磁盘的数据库不同,Redis属于内存数据库
  • 常用于缓存和中间件
  • Redis本身由C语言实现,并不是一个完整的数据库系统,并没有schema的概念,常常被用作缓存系统

安装redis

screenshot 6

screenshot 7

启动redis

screenshot 8

screenshot 9