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 等格式的資料"})
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 的入門知識回顧總結如上。