1、什麼是nosql
nosql(統稱),泛指非關係型的資料庫,nosql即not-only sql,它可以作為關係型資料庫的良好補充。
2、nosql資料庫的四大分類如下:
鍵值(key-value)儲存資料庫
相關產品: tokyo cabinet/tyrant、redis、voldemort、berkeley db
典型應用: 內容快取,主要用於處理大量資料的高訪問負載。
資料模型: 一系列鍵值對
優勢: 快速查詢
劣勢: 儲存的資料缺少結構化
列儲存資料庫
相關產品:cassandra, hbase, riak
典型應用:分布式的檔案系統
資料模型:以列簇式儲存,將同一列資料存在一起
優勢:查詢速度快,可擴充套件性強,更容易進行分布式擴充套件
劣勢:功能相對侷限
文件型資料庫
相關產品:couchdb、mongodb
典型應用:web應用(與key-value類似,value是結構化的)
資料模型: 一系列鍵值對
優勢:資料結構要求不嚴格
劣勢: 查詢效能不高,而且缺乏統一的查詢語法
圖形(graph)資料庫
相關資料庫:neo4j、infogrid、infinite graph
典型應用:社交網路
資料模型:圖結構
優勢:利用圖結構相關演算法。
劣勢:需要對整個圖做計算才能得出結果,不容易做分布式的集群方案。
3、什麼是redis
redis是將資料存放到記憶體中,由於內容訪問速度快所以redis被廣泛應用在網際網路專案中,
redis有點:訪問速度快,官方稱讀取速度會達到30萬次每秒,寫速度在10萬次每秒最有,具體限制於硬體.
缺點:對持久化支援不夠良好,
所以redis一般不作為資料的主資料庫儲存,一般配合傳統的關係型資料庫使用.
redis是用c語言開發的乙個開源的高效能鍵值對(key-value)資料庫。它通過提供多種鍵值資料型別來適應不同場景下的儲存需求,
目前為止redis支援的鍵值資料型別如下:
字串型別(string)
雜湊型別(hash) redis中使用的是雙向迴圈鍊錶來實現的list,在redis中更像棧
列表型別(list) 一般應用於將redis作為分布式快取,儲存資料庫中的資料物件
集合型別(set) set中資料是無序的並且不允許重複
有序集合型別。(zset) redis會根據分數自動排序,這裡可以使用在學生成績排序,或者是手機應用商店流行軟體排名等需求中
4、redis的應用場景
1)、適合高併發、資料量大的情況下
2)、分布式快取
3)、分布式session
5、redis 持久化
rdb:可以設定間隔多長時間儲存一次(redis不用任何配置預設的持久化方案,在redis同目錄下會產生個字尾名(rdb)的檔案,持久化資料就放到該檔案中)
優點:讓redis的資料訪問速度變快
缺點:伺服器斷電時會丟失部分資料(資料的完整性得不到保證)
aof:可以設定實時儲存(和rdb一樣,持久化資料放到該字尾(aof)檔案中)
優點:持久化良好,能包裝資料的完整性
缺點:大大降低了redis系統的訪問速度
6、主從複製
1、從伺服器和主伺服器 互相認識對方 主伺服器 知道 誰是我的從伺服器
2、然後主伺服器將rdb該檔案傳送到從伺服器中
1)、當主從伺服器互相都知曉的時候,
從伺服器會一直不間斷的對主伺服器發ping命令(意思就是問主伺服器你還活著嗎?)
主伺服器會回覆pang命令(意思:我還活著)
當從伺服器傳送ping命令 主伺服器沒任何反應的時候 那麼證明主伺服器掛了 從伺服器上位
從伺服器上位之後 不容許進行crud操作 那樣會導致資料的不同步
3、當主伺服器進行crud操作,將該命令傳送到從伺服器中,從伺服器執行同樣命令
Android 知識梳理(高階)
該為文章為個人知識梳理後的產物 不斷更新 主要目的是為了讓知識更系統,更加模組化。適合有android開發經驗,但是未進行過系統整理知識的讀者,可以參照思維導圖去對知識進行查缺補漏。下文將對思維導圖進行部分補充 measurespec 執行參考 例如保證 類 行數不超過400,函式行數不超過20 b...
redis知識點梳理
微博點贊,收藏,標籤 關注模型 zset set集合運算 zset集合運算 在jedis中分布式鎖實現 依然無法解決機率鎖失效的問題 public string lock int stock integer.parseint stringredistemplate.opsforvalue get s...
Redis知識梳理 31 緊湊列表
redis 5.0 又引入了乙個新的資料結構 listpack,它是對 ziplist 結構的改進,在 儲存空間上會更加節省,而且結構上也比 ziplist 要精簡。它的整體形式和 ziplist 還是比較接近的,如果你認真閱讀了 ziplist 的內部結構分析,那麼 listpack 也是比較容易...