redis哲學三連是大家在面試是考官提出的三個關於redis的問題「是什麼?為什麼?怎麼用?」。
這三個問題需要對redis有很深的了解,而考官也不是想聽全是網路上的答案,也會注重你自己的理解。
以下內容皆來自與網路。 (推薦學習:Redis影片教學)
Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key- Value資料庫,並提供多種語言的API。
redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value類型相對較多,包括string(字串)、list(鍊錶)、set(集合)、zset(sorted set --有序集合)和hash(雜湊類型)。這些資料類型都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了確保效率,資料都是快取在記憶體中。區別的是redis會週期性的把更新的資料寫入磁碟或把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis 是一個高效能的key-value資料庫。 redis的出現,很大程度補償了memcached這類key/value儲存的不足,在部 分場合可以對關係資料庫起到很好的補充作用。它提供了Java,C/C ,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。
Redis支援主從同步。資料可以從主伺服器向任意數量的從伺服器上同步,從伺服器可以是關聯其他從伺服器的主伺服器。這使得Redis可執行單層樹複製。記憶體可以有意無意的對資料進行寫入操作。由於完全實現了發布/訂閱機制,使得從資料庫在任何地方同步樹時,可訂閱一個頻道並接收主伺服器完整的訊息發布記錄。同步對讀取操作的可擴充性和資料冗餘很有幫助。
1、熱點資料的快取
由於redis存取速度區塊、支援的資料類型比較豐富,所以redis很適合用來儲存熱點數據,另外結合expire,我們可以設定過期時間然後再進行快取更新操作,這個功能最為常見,我們幾乎所有的項目都有所運用。
2、限時業務的運用
redis中可以使用expire指令設定一個鍵的生存時間,到時間後redis會刪除它。利用此特性可以運用在限時的優惠活動資訊、手機驗證碼等業務場景。
3、計數器相關問題
redis由於incrby指令可以實現原子性的遞增,所以可以運用於高並發的秒殺活動、分散式序號的產生、具體業務也體現在例如限制一個手機號發送多少簡訊、一個介面一分鐘限制多少請求、一個介面一天限制呼叫多少次等等。
4、排行榜相關問題
關係型資料庫在排行榜方面查詢速度普遍偏慢,所以可以藉助redis的SortedSet進行熱點資料的排序。
5、分散式鎖定
當然我們可以將這個特性運用於其他需要分散式鎖定的場景中,結合過期時間主要是防止死鎖的出現。
6、延時操作
7、分頁、模糊搜尋
更多Redis相關技術文章,請造訪Redis資料庫使用入門教學專欄進行學習!
以上是redis哲學三連是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!