非關係型資料庫Redis/MongoDB
關係性資料庫有以下缺點
儲存在硬碟上,讀寫慢
需保持ACID,難以擴充套件
非關係資料庫
Not only SQL
都是以key:value形式存在
可以用在分散式系統
有CAP特性:一致性,可用性,分隔容忍(不能三個特性一起用)
缺點:非標準化語言,有限的查詢功能
- Redis
免費開源資料庫
- MongoDB
非關係型資料庫nosql
檔案儲存:類Json格式
有機會對欄位建立索引,實現關係資料庫
下載:官網
mongoDB操作:
執行mongoDB伺服器
mongod -dbpath xxx
連線MongoDB:
mongo
檢視當前資料庫
show dbs
切換資料庫(如果沒有會自動建立)
use demo1
插入資料:
db,demo1.insert("name":"xiaohong")
切換到資料庫demo1
use demo1
刪除資料庫
db.dropDatabase()
集合:
集合相當於一張表,集合可以有多個文件。
建立集合
db.createCollection('collection1')
檢視已經建立的集合
show collections
刪除集合
db.collection1.drop()
插入和檢視文件
文件是mongodb最基本單元
db.collectDemo.insert({"name":"xiaohong"})
檢視插入的內容
db.collectionDemo.find().pretty()
宣告變數,插入文件
doc=({....})
db.collectionDemo.insert(document)
修改和刪除文件
替換是對於整條資料進行替換;
db.collection.update({‘title':'MongoDB'},{'title':'mongoDB123'})
修改多個文件
如果不加set則會整條記錄被替換
db.collection.update({'name':'hello'},
{$set:{'name':'hello123'}},{multi:true})
刪除多個文件
db.col.remove({'name':'hello123'})
刪除一個文件
db.col.remove({'name':'hello'},1)
修改操作符
$inc
{$inc:{field:value}}
作用:對於一個數字欄位的某個field增加value
例如將年齡增加5
$set
{$set:{field:value}}
將文件中某個欄位field的值設為value
$unset
{$unset:{field:1}}
刪除某個欄位field
$push
{$push:{field:value}}
把value追加到field裡面
例如 :給chenzhou新增別名michael
$rename
對欄位重新命名