【基礎概念】 Redis簡介和麪試常見問題

Redis簡介和麪試常見問題

簡介:

    Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。從2013年5月開始,Redis的開發由Pivotal贊助。

定義:

    Redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。

面試常見的問題:

    1. 使用Redis有哪些好處?

        (1) 速度快,因爲數據存在內存中,類似於HashMap,HashMap的優勢就是查找和操作的時間複雜度都是O(1)

        (2) 支持豐富數據類型,支持string,list,set,sorted set,hash

        (3) 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要麼全部執行,要麼全部不執行

        (4) 豐富的特性:可用於緩存,消息,按key設置過期時間,過期後將會自動刪除

    2. Redis相比memcached有哪些優勢?

        (1) memcached所有的值均是簡單的字符串,redis作爲其替代者,支持更爲豐富的數據類型

        (2) redis的速度比memcached快很多

        (3) redis可以持久化其數據

    3. Redis常見性能問題和解決方案:

        (1) Master最好不要做任何持久化工作,如RDB內存快照和AOF日誌文件

        (2) 如果數據比較重要,某個Slave開啓AOF備份數據,策略設置爲每秒同步一次

        (3) 爲了主從複製的速度和連接的穩定性,Master和Slave最好在同一個局域網內

        (4) 儘量避免在壓力很大的主庫上增加從庫

        (5) 主從複製不要用圖狀結構,用單向鏈表結構更爲穩定,即:Master <- Slave1 <- Slave2 <- Slave3...這樣的結構方便解決單點故障問題,實現Slave對Master的替換。如果Master掛了,可以立刻啓用Slave1做Master,其他不變。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章