web主機構建的三種方式
阿新 • • 發佈:2020-11-04
Redis介紹
引言
我們的專案就是這樣的,客戶端訪問伺服器,伺服器訪問資料庫。如果訪問量過大,那麼伺服器可能就承受不住了,此時可以增加墮胎伺服器,即伺服器叢集,但是資料庫的壓力大(資料庫基於SQL從磁碟中通過IO獲取和存放資料),這時輕則導致查詢效率低,重則直接伺服器崩潰。怎麼辦呢?這時候就要用到Redis。此外,有了墮胎伺服器後,客戶端的訪問通過伺服器叢集的時候,不知道該訪問哪一臺伺服器。比如此時通過上面的伺服器進行登入(上面伺服器儲存了Session),但是下次從下面伺服器去請求,卻沒有session。還有鎖的問題,如果上面儲存了鎖,下面也可以再儲存另外一個鎖,因為兩個鎖是根據各自伺服器中的物件建立的,此時不具有互斥性,這樣也會出現問題。
總結:
- 由於使用者增大,請求數量也隨之增大,資料壓力過大。
- 墮胎伺服器之間,資料不同步。
- 墮胎伺服器之間的鎖,已經不存在互斥性了。
Redis介紹
- Redis就是一款NoSQL。
- NoSQL->非關係型資料庫->Not Only SQL.有如下類別:
- key-Value:Redis.....
- 文件型:ElasticSearch,Solr,Mongodb...
- 面向列:Hbase,Cassandra...
- 除了關係型資料庫都是非關係型資料庫。
- NoSQL只是一種概念,泛指非關係型資料庫,和關係型資料庫做一個區分。
關係型資料庫是說表與表之間存在關係,而非關係型資料是說表與表之間沒有關係,甚至說有些關係型資料庫不存在表。
作者介紹:
- 由以為義大利人,在開發一款LLOOGG的統計頁面,因為MySQL的效能不好,自己研發了一款非關係型資料庫,並命名為Redis。作者是Salvatore。
- Redis(Remote Dictionary Server)即遠端字典服務,Redis是由C語言去編寫,Redis是一款基於key-Value的NoSQL,而且Redis是基於記憶體儲存資料的,Redis還提供了多種持久化機制(放置斷電資料丟失),效能可以達到110000/s讀取資料以及81000/s寫入資料,Redis還提供了主從,燒餅以及叢集的搭建方式,可以更方便的橫向擴充套件以及垂直擴充套件。
Redis安裝
這裡老師的安裝用了Dockor和Negix,我的天,我就百度安裝了。
Redis常用命令
在講述Redis常用命令之前,先講述下Redis儲存資料的結構。