1. 程式人生 > >NoSQL 中 MongoDB 和 Redis 的入門知識

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 的入門知識回顧總結如上。