共計 1786 個字符,預計需要花費 5 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹 redis 入門學習手冊分享,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、前言
在過去的幾年時間里,一提到高并發、海量數據存儲解決方案,我們想到的都是 NoSQL 數據庫,與之相應的產品自然也呈現出勃勃生機。而在眾多產品中脫穎而出的有 Redis、MongoDB、BerkeleyDB 和 CouchDB 等。下面來簡單說明一下。
Redis 的優勢:
1、和其他 NoSQL 產品相比,Redis 的易用性極高,因此對于那些有類似產品使用經驗的開發者來說,一兩天,甚至是幾個小時之后就可以利用 Redis 來搭建自己的平臺了。
2、在解決了很多通用性問題的同時,也為一些個性化問題提供了相關的解決方案,如索引引擎、統計排名、消息隊列服務等。
三、目前版本中 Redis 存在的主要問題:
1、在官方版本中沒有提供 Windows 平臺的支持,已發布的正式版本中只是支持類 Unix 和 MacOSX 平臺。
2、沒有提供集群的支持,然而據官網所述,預計在 2.6 版本中會加入該特征。
3、Publication/Subscription 功能中,如果 master 宕機,slave 無法自動提升為 master。
四、和關系型數據庫的比較:
在目前版本 (2.4.7) 的 Redis 中,提供了對五種不同數據類型的支持,其中只有一種類型,既 string 類型可以被視為 Key-Value 結構,而其他的數據類型均有適用于各自特征的應用場景,至于具體細節我們將會在該系列后面的博客中予以說明。
相比于關系型數據庫,由于其存儲結構相對簡單,因此 Redis 并不能對復雜的邏輯關系提供很好的支持,然而在適用于 Redis 的場景中,我們卻可以由此而獲得效率上的顯著提升。即便如此,Redis 還是為我們提供了一些數據庫應該具有的基礎概念,如:在同一連接中可以選擇打開不同的數據庫,然而不同的是,Redis 中的數據庫是通過數字來進行命名的,缺省情況下打開的數據庫為 0。如果程序在運行過程中打算切換數據庫,可以使用 Redis 的 select 命令來打開其他數據庫,如 select 1,如果此后還想再切換回缺省數據庫,只需執行 select 0 即可。
在數據存儲方面,Redis 遵循了現有 NoSQL 數據庫的主流思想,即 Key 作為數據檢索的唯一標識,我們可以將其簡單的理解為關系型數據庫中索引的鍵,而 Value 則作為數據存儲的主要對象,其中每一個 Value 都有一個 Key 與之關聯,這就好比索引中物理數據在數據表中存儲的位置。在 Redis 中,Value 將被視為二進制字節流用于存儲任何格式的數據,如 Json、XML 和序列化對象的字節流等,因此我們也可以將其想象為 RDB 中的 BLOB 類型字段。由此可見,在進行數據查詢時,我們只能基于 Key 作為我們查詢的條件,當然我們也可以應用 Redis 中提供的一些技巧將 Value 作為其他數據的 Key,這些知識我們都會在后面的博客中予以介紹。
五、如何持久化內存數據:
缺省情況下,Redis 會參照當前數據庫中數據被修改的數量,在達到一定的閾值后會將數據庫的快照存儲到磁盤上,這一點我們可以通過配置文件來設定該閾值。通常情況下,我們也可以將 Redis 設定為定時保存。如當有 1000 個以上的鍵數據被修改時,Redis 將每隔 60 秒進行一次數據持久化操作。缺省設置為,如果有 9 個或 9 個以下數據修改是,Redis 將每 15 分鐘持久化一次。
從上面提到的方案中可以看出,如果采用該方式,Redis 的運行時效率將會是非常高效的,既每當有新的數據修改發生時,僅僅是內存中的緩存數據發生改變,而這樣的改變并不會被立即持久化到磁盤上,從而在絕大多數的修改操作中避免了磁盤 IO 的發生。然而事情往往是存在其兩面性的,在該方法中我們確實得到了效率上的提升,但是卻失去了數據可靠性。如果在內存快照被持久化到磁盤之前,Redis 所在的服務器出現宕機,那么這些未寫入到磁盤的已修改數據都將丟失。為了保證數據的高可靠性,Redis 還提供了另外一種數據持久化機制 –Append 模式。如果 Redis 服務器被配置為該方式,那么每當有數據修改發生時,都會被立即持久化到磁盤。
以上是“redis 入門學習手冊分享”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!
向 AI 問一下細節