NoSQL 中 MongoDB 和 Redis 的入门知识

今天学习了 NoSQL 中 MongoDB 和 Redis 的一些入门知识,因为并不想深入了解学习(只是想了解学习 SQL 之外的),所以只是简单了解了入门的一些基础知识与命令,在此总结记录下。

文档数据库 MongoDB 入门

文档数据库 MongoDB 用于记录文档结构的数据,如 JSON、XML结构的数据。一条文档对应的是 SQL 中的一条记录(一行),一条记录里可以包含若干个键值对。键值对由键和值两个部分组成,键值对的值可以使普通值,如字符型、整型等,也可以是文档、数组或是文档数据。

MongoDB 具有高性能、丰富的查询语言、高可用性、水平扩展能力、多个存储引擎的支持。具体怎么支持的目前还没有欲望深入了解。

MongoDB 基本命令

不用说也知道下面的命令需要安装启动 MongoDB 后才能 在 terminal 或是使用 Navicat 连接 MongoDB 后执行吧。
创建数据库:use 数据库名;例如:use goodsdb;(不需要分号)
查看数据库:show dbs;
统计某数据库信息:db.stats()
删除数据库:db.dropDatabase()
查看当前数据库下所有的集合名称:db.getCollectionNames()
查看数据库用户角色和权限:show roles

MongoDB 基本操作

插入文档
use goodsdb: 选择操作的数据库
db.goodsbaseinf.insert({"括号内是 JSON 等格式的数据"}):向 goodsbaseinf 集合中添加文档数据,插入文档数据中可存在嵌套的文档数据,具体参照 JSON 数据格式。之后可使用 db.goodsbaseinf.find()查询插入数据。此外还存在 insertOne(), insertMany() 两种简化的插入命令,前者确保一次只插入一条文档。

查询文档
db.goodsbaseinf().find()中以 JSON 的格式加入查询限定条件即可实现条件查询。如:db.goodsbaseinf().find({name:"Allen Anker"})语句会查询出文档中 name 键对应值为 “Allen Anker” 的文档记录。

更新文档
命令:db.collection.update;
用例:db.order.update({title:"name 1"}, {$set:{title:"name 2"}});查找
title 值为 “name 1” 的记录并更改其 title 值为 “name 2”
其他命令用例(命令名称都是 self-explanatory 的):$inc: {amount:5}, $mul:{amount:2}, $rename:{}, $unset:{}, $min:{amount:50}, $max{},如 inc 对应的是将查到符合的记录的 amount 值作增量 5 的操作。

删除文档
命令:db.text.remove({})

创建索引
命令:db.collection.createIndex({name:""});

其他更深入的命令目前就没有了解了。

键值数据库 Redis 入门

Redis 是一个开源的基于内存处理的数据结构存储系统,可以作为数据库使用,也可以作为缓存处理和消息传递处理。Redis 主要在内存中实现对各种数据的运算,以提高数据处理速度。但 Redis 也提供了隔一段时间转存到网盘,或通过命令附加到日志来持久化数据。当然,为了提高数据处理速度,也可以完全禁用持久性功能。

Redis 存储模式

字符串String、列表List、集合Set、散列表Hash(无序的一种数据集合)、有序集合Sorted Set、位图Bitmap。

Redis 命令

感觉 Redis 的命令要更接近于平常编程写的代码。

字符串命令
Set BookName “《》” EX 1
MSet, MSetNX, Get, MGet, Del, StrLen,

修改字符串操作命令
Append,Append key value, 在 key 键对应的值后追加 value 内容
GetRange(GetRange key start end), 查询 key 键内容,start 为内容开始处
GetSet, GetSet key value, 查询后修改 key 对应的值为 value
SetRange, Set key offset value, 替换指定键字符串的一部分,修改 key 对应值 offset 位置后的内容为 value。

修改数字值操作命令
Decr,DecrBy,Incr,IncrBy,IncrByFloat
位图命令
。。。不太想是入门内容,没有了解。
列表命令
LPush,LRange,RPush,LPop,LRem,LIndex,LLen,LTrim LInsert key before等,例如 LInsert TestInsert Before "four" "three"的意思是在列表 TestInsert 中 “four” 值得前面插入值 “three”;LPush 即从列表的左边“推入”(插入)值,那么 RPush 就对应右边啦,其他类似命令以此类推。

还有其他许多的各种命令再次就略过了。

今天学习 MongoDB 和 Redis 的入门知识回顾总结如上。

猜你喜欢

转载自blog.csdn.net/qq_37427344/article/details/83154503