失效鏈接處理 |
redis面試題及其答案 PDF 下載
本站整理下載:
提取碼:y3yx
相關截圖:
![]()
主要內容:
Redis主要有哪些功能?
1. 哨兵(Sentinel)和復制(Replication)Redis服務器毫無征兆的罷工是個麻煩事,如何保證備份的機器
是原始服務器的完整備份呢?這時候就需要哨兵和復制。Sentinel可以管理多個Redis服務器,它提供了
監控,提醒以及自動的故障轉移的功能,Replication則是負責讓一個Redis服務器可以配備多個備份的服
務器。Redis也是利用這兩個功能來保證Redis的高可用的
2. 事務很多情況下我們需要一次執行不止一個命令,而且需要其同時成功或者失敗。redis對事務的支持也是
源自于這部分需求,即支持一次性按順序執行多個命令的能力,并保證其原子性。(多個指令不支持)
3. LUA腳本在事務的基礎上,如果我們需要在服務端一次性的執行更復雜的操作(包含一些邏輯判斷),則
lua就可以排上用場了
4. 持久化redis的持久化指的是redis會把內存的中的數據寫入到硬盤中,在redis重新啟動的時候加載這些數
據,從而最大限度的降低緩存丟失帶來的影響。
5. 集群(Cluster)單臺服務器資源的總是有上限的,CPU資源和IO資源我們可以通過主從復制,進行讀寫
分離,把一部分CPU和IO的壓力轉移到從服務器上,這也有點類似mysql數據庫的主從同步。在Redis官
方的分布式方案出來之前,有twemproxy和codis兩種方案,這兩個方案總體上來說都是依賴proxy來進
行分布式的。
Redis支持哪幾種數據類型?
支持多種類型的數據結構
1. string:最基本的數據類型,二進制安全的字符串,最大512M。
2. list:按照添加順序保持順序的字符串列表。
3. set:無序的字符串集合,不存在重復的元素。
4. sorted set:已排序的字符串集合。
5. hash:key-value對的一種集合。
類型 最大存儲數量
String 512M
list 2^32-1
set 2^32-1
sorted set 2^32-1
hash 2^32-1
Redis是單進程單線程的?
Redis是單進程單線程的,Redis利用隊列技術將并發訪問變為串行訪問,消除了傳統數據庫串行控制的
開銷。
Redis為什么是單線程的?
多線程處理會涉及到鎖,而且多線程處理會涉及到線程切換而消耗CPU。因為CPU不是Redis的瓶頸,
Redis的瓶頸最有可能是機器內存或者網絡帶寬。單線程無法發揮多核CPU性能,不過可以通過在單機開
多個Redis實例來解決。
其它開源軟件采用的模型
1. Nginx:多進程單線程模型
2. Memcached:單進程多線程模型
使用Redis的優勢?
1. 速度快,因為數據存在內存中,類似于HashMap,HashMap的優勢就是查找和操作的時間復雜度都是
O(1)
2. 支持豐富數據類型,支持string,list,set,sortedset,hash
3. 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要么全部執行,要么全部不執行
4. 豐富的特性:可用于緩存,消息,按key設置過期時間,過期后將會自動刪除
Redis單點吞吐量
單點TPS達到8萬/秒,QPS達到10萬/秒,補充下TPS和QPS的概念
1. QPS:應用系統每秒鐘最大能接受的用戶訪問量
每秒鐘處理完請求的次數,注意這里是處理完,具體是指發出請求到服務器處理完成功返回結果。可以理解在
server中有個counter,每處理一個請求加1,1秒后counter=QPS。
2. TPS:每秒鐘最大能處理的請求數
每秒鐘處理完的事務次數,一個應用系統1s能完成多少事務處理,一個事務在分布式處理中,可能會對應多個
請求,對于衡量單個接口服務的處理能力,用QPS比較合理。
Redis相比memcached有哪些優勢?
1. memcached所有的值均是簡單的字符串,Redis作為其替代者,支持更為豐富的數據類型
2. Redis的速度比memcached快很多
3. Redis可以持久化其數據4.Redis支持數據的備份,即master-slave模式的數據備份。
Redis有哪幾種數據淘汰策略?
在Redis中,允許用戶設置最大使用內存大小server.maxmemory,當Redis內存數據集大小上升到一定
大小的時候,就會施行數據淘汰策略。
1. volatile-lru:從已設置過期的數據集中挑選最近最少使用的淘汰
2. volatile-ttr:從已設置過期的數據集中挑選將要過期的數據淘汰
3. volatile-random:從已設置過期的數據集中任意挑選數據淘汰
4. allkeys-lru:從數據集中挑選最近最少使用的數據淘汰
5. allkeys-random:從數據集中任意挑選數據淘汰
6. noenviction:禁止淘汰數據redis
淘汰數據時還會同步到aof
|