久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

關于redis緩存的面試題有哪些

172次閱讀
沒有評論

共計 9991 個字符,預計需要花費 25 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章將為大家詳細講解有關關于 redis 緩存的面試題有哪些,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

redis 緩存的面試題 1、redis 和 memcached 什么區別?為什么高并發下有時單線程的 redis 比多線程的 memcached 效率要高?

區別:

memcached 可緩存圖片和視頻。redis 支持除 k / v 更多的數據結構;

redis 可以使用虛擬內存,redis 可持久化和 aof 災難恢復,redis 通過主從支持數據備份;

3.redis 可以做消息隊列。

原因:memcached 多線程模型引入了緩存一致性和鎖,加鎖帶來了性能損耗。

2、redis 主從復制如何實現的?redis 的集群模式如何實現?redis 的 key 是如何尋址的?

主從復制實現:主節點將自己內存中的數據做一份快照,將快照發給從節點,從節點將數據恢復到內存中。之后再每次增加新數據的時候,主節點以類似于 mysql 的二進制日志方式將語句發送給從節點,從節點拿到主節點發送過來的語句進行重放。

分片方式:

客戶端分片

基于代理的分片

Twemproxy

codis

路由查詢分片

Redis-cluster 體身提供了自動將數據分散到 RedisCluster 不同節點的能力,整個數據集合的某個數據子集存儲在哪個節點對于用戶來說是透明的)

redis-cluster 分片原理:Cluster 中有一個 16384 長度的槽(虛擬槽),編號分別為 0 -16383。每個 Master 節點都會負責一部分的槽,當有某個 key 被映射到某個 Master 負責的槽,那么這個 Master 負責為這個 key 提供服務,至于哪個 Master 節點負責哪個槽,可以由用戶指定,也可以在初始化的時候自動生成,只有 Master 才擁有槽的所有權。Master 節點維護著一個 16384/ 8 字節的位序列,Master 節點用 bit 來標識對于某個槽自己是否擁有。比如對于編號為 1 的槽,Master 只要判斷序列的第二位(索引從 0 開始)是不是為 1 即可。這種結構很容易添加或者刪除節點。比如如果我想新添加個節點 D,我需要從節點 A、B、C 中得部分槽到 D 上。

【相關推薦:Redis 視頻教程】

3、使用 redis 如何設計分布式鎖?說一下實現思路?使用 zk 可以嗎?如何實現?這兩種有什么區別?

redis:

線程 Asetnx(上鎖的對象超時時的時間戳 tl),如果返回 true,獲得鎖。

線程 B 用 get 獲取 t1,與當前時間戳比較,判斷是是否超時,沒超時 false,若超時執行第 3 步;

計算新的超時時間 t2,使用 getset 命令返回 t3(該值可能其他線程已經修改過),如果 t1==t3,獲得鎖,如果 t1!=t3 說明鎖被其他線程獲取了。

獲取鎖后,處理完業務邏輯,再去判斷鎖是否超時,如果沒超時刪除鎖,如果已超時,不用處理(防止刪除其他線程的鎖)。

zk:

客戶端對某個方法加鎖時,在 zk 上的與該方法對應的指定節點的目錄下,生成一個唯一的瞬時有序節點 node1;

客戶端獲取該路徑下所有已經創建的子節點,如果發現自己創建的 node1 的序號是最小的,就認為這個客戶端獲得了鎖。

如果發現 node1 不是最小的,則監聽比自己創建節點序號小的最大的節點,進入等待。

獲取鎖后,處理完邏輯,刪除自己創建的 node1 即可。區別:zk 性能差一些,開銷大,實現簡單。

4、知道 redis 的持久化嗎?底層如何實現的?有什么優點缺點?

RDB(RedisDataBase:在不同的時間點將 redis 的數據生成的快照同步到磁盤等介質上):內存到硬盤的快照,定期更新。缺點:耗時,耗性能(fork+io 操作),易丟失數據。

AOF(AppendOnlyFile:將 redis 所執行過的所有指令都記錄下來,在下次 redis 重啟時,只需要執行指令就可以了):寫日志。缺點:體積大,恢復速度慢。

bgsave 做鏡像全量持久化,aof 做增量持久化。因為 bgsave 會消耗比較長的時間,不夠實時,在停機的時候會導致大量的數據丟失,需要 aof 來配合,在 redis 實例重啟時,優先使用 aof 來恢復內存的狀態,如果沒有 aof 日志,就會使用 rdb 文件來恢復。Redis 會定期做 aof 重寫,壓縮 aof 文件日志大小。Redis4.0 之后有了混合持久化的功能,將 bgsave 的全量和 aof 的增量做了融合處理,這樣既保證了恢復的效率又兼顧了數據的安全性。bgsave 的原理,fork 和 cow,fork 是指 redis 通過創建子進程來進行 bgsave 操作,cow 指的是 copyonwrite,子進程創建后,父子進程共享數據段,父進程繼續提供讀寫服務,寫臟的頁面數據會逐漸和子進程分囲開來。

5、redis 過期策略都有哪些?LRU 算法知道嗎?寫一下 java 代碼實現?

過期策略:

定時過期(一 key 一定時器),惰性過期:只有使用 key 時才判斷 key 是否已過期,過期則清除。定期過期:前兩者折中。

LRU:newLinkedHashMap K,V(capacity,DEFAULT_LOAD_FACTORY,true);第三個參數置為 true,代表 linkedlist 按訪問順序排序,可作為 LRU 緩存;設為 false 代表按插入順序排序,可作為 FIFO 緩存

LRU 算法實現:

通過雙向鏈表來實現,新數據插入到鏈表頭部;

每當緩存命中(即緩存數據被訪問),則將數據移到鏈表頭部;

當鏈表滿的時候,將鏈表尾部的數據丟棄。

LinkedHashMap:HashMap 和雙向鏈表合二為一即是 LinkedHashMap。HashMap 是無序的,LinkedHashMap 通過維護一個額外的雙向鏈表保證了迭代順序。該迭代順序可以是插入順序(默認),也可以是訪問順序。

6、緩存穿透、緩存擊穿、緩存雪崩解決方案?

** 緩存穿透:** 指查詢一個一定不存在的數據,如果從存儲層查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到 DB 去查詢,可能導致 DB 掛掉。

解決方案:

查詢返回的數據為空,仍把這個空結果進行緩存,但過期時間會比較短;

布隆過濾器:將所有可能存在的數據哈希到一個足夠大的 bitmap 中,一個一定不存在的數據會被這個 bitmap 攔截掉,從而避免了對 DB 的查詢。

** 緩存擊穿:** 對于設置了過期時間的 key,緩存在某個時間點過期的時候,恰好這時間點對這個 Key 有大量的并發請求過來,這些請求發現緩存過期一般都會從后端 DB 加載數據并回設到緩存,這個時候大并發的請求可能會瞬間把 DB 壓垮。

解決方案:

使用互斥鎖:當緩存失效時,不立即去 Ioaddb,先使用如 Redis 的 setnx 去設置一個互斥鎖,當操作成功返回時再進行 Ioaddb 的操作并回設緩存,否則重試 get 緩存的方法。

永遠不過期:物理不過期,但邏輯過期(后臺異步線程去刷新)。緩存雪崩:設置緩存時采用了相同的過期時間,導致緩存在某一時刻同時失效,請求全部轉發到 DB,DB 瞬時壓力過重雪崩。與緩存擊穿的區別:雪崩是很多 key,擊穿是某一個 key 緩存。

解決方案:

將緩存失效時間分散開,比如可以在原有的失效時間基礎上增加一個隨機值,比如 1 - 5 分鐘隨機,這樣每一個緩存的過期時間的重復率就會降低,就很難引發集體失效的事件。

7、在選擇緩存時,什么時候選擇 redis,什么時候選擇 memcached

選擇 redis 的情況:

復雜數據結構,value 的數據是哈希,列表,集合,有序集合等這種情況下,會選擇 redis,因為 memcache 無法滿足這些數據結構,最典型的的使用場景是,用戶訂單列表,用戶消息,帖子評論等。

需要進行數據的持久化功能,但是注意,不要把 redis 當成數據庫使用,如果 redis 掛了,內存能夠快速恢復熱數據,不會將壓力瞬間壓在數據庫上,沒有 cache 預熱的過程。對于只讀和數據一致性要求不高的場景可以采用持久化存儲

高可用,redis 支持集群,可以實現主動復制,讀寫分離,而對于 memcache 如果想要實現高可用,需要進行二次開發。

存儲的內容比較大,memcache 存儲的 value 最大為 1M。

選擇 memcache 的場景:

純 KV,數據量非常大的業務,使用 memcache 更合適,原因是:

memcache 的內存分配采用的是預分配內存池的管理方式,能夠省去內存分配的時間,redis 是臨時申請空間,可能導致碎片化。

虛擬內存使用,memcache 將所有的數據存儲在物理內存里,redis 有自己的 vm 機制,理論上能夠存儲比物理內存更多的數據,當數據超量時,引發 swap,把冷數據刷新到磁盤上,從這點上,數據量大時,memcache 更快

網絡模型,memcache 使用非阻塞的 10 復用模型,redis 也是使用非阻塞的 I。復用模型,但是 redis 還提供了一些非 KV 存儲之外的排序,聚合功能,復雜的 CPU 計算,會阻塞整個 I0 調度,從這點上由于 redis 提供的功能較多,memcache 更快些

線程模型,memcache 使用多線程,主線程監聽,worker 子線程接受請求,執行讀寫,這個過程可能存在鎖沖突。redis 使用的單線程,雖然無鎖沖突,但是難以利用多核的特性提升吞吐量。

8、緩存與數據庫不一致怎么辦?

假設采用的主存分離,讀寫分離的數據庫,
如果一個線程 A 先刪除緩存數據,然后將數據寫入到主庫當中,這個時候,主庫和從庫同步沒有完成,線程 B 從緩存當中讀取數據失敗,從從庫當中讀取到舊數據,然后更新至緩存,這個時候,緩存當中的就是舊的數據。

發生上述不一致的原因在于,主從庫數據不一致問題,加入了緩存之后,主從不一致的時間被拉長了。

處理思路:在從庫有數據更新之后,將緩存當中的數據也同時進行更新,即當從庫發生了數據更新之后,向緩存發出刪除,淘汰這段時間寫入的舊數據。

9、主從數據庫不一致如何解決?

場景描述,對于主從庫,讀寫分離,如果主從庫更新同步有時差,就會導致主從庫數據的不一致

忽略這個數據不一致,在數據一致性要求不高的業務下,未必需要時時一致性

強制讀主庫,使用一個高可用的主庫,數據庫讀寫都在主庫,添加一個緩存,提升數據讀取的性能。

選擇性讀主庫,添加一個緩存,用來記錄必須讀主庫的數據,將哪個庫,哪個表,哪個主鍵,作為緩存的 key,設置緩存失效的時間為主從庫同步的時間,如果緩存當中有這個數據,直接讀取主庫,如果緩存當中沒有這個主鍵,就到對應的從庫中讀取。

10、Redis 常見的性能問題和解決方案

master 最好不要做持久化工作,如 RDB 內存快照和 AOF 日志文件

如果數據比較重要,某個 slave 開啟 AOF 備份,策略設置成每秒同步一次

為了主從復制的速度和連接的穩定性,master 和 Slave 最好在一個局域網內

盡量避免在壓力大得主庫上增加從庫

主從復制不要米用網狀結構,盡量是線性結構,Master –Slave1 —Slave2…

11、Redis 的數據淘汰策略有哪些

voltile-lru 從已經設置過期時間的數據集中挑選最近最少使用的數據淘汰

voltile-ttl 從已經設置過期時間的數據庫集當中挑選將要過期的數據

voltile-random 從已經設置過期時間的數據集任意選擇淘汰數據

allkeys-lru 從數據集中挑選最近最少使用的數據淘汰

allkeys-random 從數據集中任意選擇淘汰的數據

no-eviction 禁止驅逐數據

12、Redis 當中有哪些數據結構

字符串 String、字典 Hash、列表 List、集合 Set、有序集合 SortedSet。如果是咼級用戶,那么還會有,如果你是 Redis 中高級用戶,還需要加上下面幾種數據結構 HyperLogLog、Geo、Pub/Sub。

13、假如 Redis 里面有 1 億個 key,其中有 10w 個 key 是以某個固定的已知的前綴開頭的,如果將它們全部找出來?

使用 keys 指令可以掃出指定模式的 key 列表。

對方接著追問:如果這個 redis 正在給線上的業務提供服務,那使用 keys 指令會有什么問題?

這個時候你要回答 redis 關鍵的一個特性:redis 的單線程的。keys 指令會導致線程阻塞一段時間,線上服務會停頓,直到指令執行完畢,服務才能恢復。這個時候可以使用 scan 指令,scan 指令可以無阻塞的提取出指定模式的 key 列表,但是會有一定的重復概率,在客戶端做一次去重就可以了,但是整體所花費的時間會比直接用 keys 指令長。

14、使用 Redis 做過異步隊列嗎,是如何實現的

使用 list 類型保存數據信息,rpush 生產消息,lpop 消費消息,當 lpop 沒有消息時,可以 sleep 一段時間,然后再檢查有沒有信息,如果不想 sleep 的話,可以使用 blpop,在沒有信息的時候,會一直阻塞,直到信息的到來。redis 可以通過 pub/sub 主題訂閱模式實現一個生產者,多個消費者,當然也存在一定的缺點,當消費者下線時,生產的消息會丟失。

15、Redis 如何實現延時隊列

使用 sortedset,使用時間戳做 score,消息內容作為 key,調用 zadd 來生產消息,消費者使用 zrangbyscore 獲取 n 秒之前的數據做輪詢處理。

16、什么是 Redis?簡述它的優缺點?

Redis 本質上是一個 Key-Value 類型的內存數據庫,很像 memcached,整個數據庫統統加載在內存當中進行操作,定期通過異步操作把數據庫數據 flush 到硬盤上進行保存。

因為是純內存操作,Redis 的性能非常出色,每秒可以處理超過 10 萬次讀寫操作,是已知性能最快的 Key-ValueDB。

Redis 的出色之處不僅僅是性能,Redis 最大的魅力是支持保存多種數據
結構,此外單個 value 的最大限制是 1GB,不像 memcached 只能保存 1MB 的數據,因此 Redis 可以用來實現很多有用的功能。

比方說用他的 List 來做 FIFO 雙向鏈表,實現一個輕量級的高性能消息隊列服務,用他的 Set 可以做高性能的 tag 系統等等。

另外 Redis 也可以對存入的 Key-Value 設置 expire 時間,因此也可以被當作一個功能加強版的 memcached 來用。Redis 的主要缺點是數據庫容量受到物理內存的限制,不能用作海量數據的高性能讀寫,因此 Redis 適合的場景主要局限在較小數據量的高性能操作和運算上。

17、Redis 相比 memcached 有哪些優勢?

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

Redis 的速度比 memcached 快很多

redis 可以持久化其數據

18、Redis 支持哪幾種數據類型?

String、List、Set、SortedSet、hashes

19、Redis 主要消耗什么物理資源?

內存。

20、Redis 的全稱是什么?

Remote Dictionary Server

21、Redis 有哪幾種數據淘汰策略?

noeviction:返回錯誤當內存限制達到并且客戶端嘗試執行會讓更多內存被使用的命令(大部分的寫入指令,但 DEL 和幾個例外)

allkeys-lru:嘗試回收最少使用的鍵(LRU),使得新添加的數據有空間存放。

volatile-lru:嘗試回收最少使用的鍵(LRU),但僅限于在過期集合的鍵,使得新添加的數據有空間存放。

allkeys-random:回收隨機的鍵使得新添加的數據有空間存放。

volatile-random:回收隨機的鍵使得新添加的數據有空間存放,但僅限于在過期集合的鍵。

volatile-ttl:回收在過期集合的鍵,并且優先回收存活時間 (TTL) 較短的鍵,使得新添加的數據有空間存放。

22、Redis 官方為什么不提供 Windows 版本?

因為目前 Linux 版本已經相當穩定,而且用戶量很大,無需開發 windows 版本,反而會帶來兼容性等問題。

23、一個字符串類型的值能存儲最大容量是多少?

512M

24、為什么 Redis 需要把所有數據放到內存中?

Redis 為了達到最快的讀寫速度將數據都讀到內存中,并通過異步的方式將數據寫入磁盤。

所以 redis 具有快速和數據持久化的特征。如果不將數據放在內存中,磁盤 I / O 速度為嚴重影響 redis 的性能。

在內存越來越便宜的今天,redis 將會越來越受歡迎。如果設置了最大使用的內存,則數據已有記錄數達到內存限值后不能繼續插入新值。

25、Redis 集群方案應該怎么做?都有哪些方案?

codis。
目前用的最多的集群方案,基本和 twemproxy 一致的效果,但它支持在節點數量改變情況下,舊節點數據可恢復到新 hash 節點。

rediscluster3.0 自帶的集群,特點在于他的分布式算法不是一致性 hash,而是 hash 槽的概念,以及自身支持節點設置從節點。具體看官方文檔介紹。

在業務代碼層實現,起幾個毫無關聯的 redis 實例,在代碼層,對 key 進行 hash 計算,然后去對應的 redis 實例操作數據。這種方式對 hash 層代碼要求比較高,考慮部分包括,節點失效后的替代算法方案,數據震蕩后的自動腳本恢復,實例的監控,等等。

26、Redis 集群方案什么情況下會導致整個集群不可用?

有 A,B,C 三個節點的集群,在沒有復制模型的情況下,如果節點 B 失敗了,那么整個集群就會以為缺少 5501-11000 這個范圍的槽而不可用。

27、MySQL 里有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis 中的數據都是熱點數據?

redis 內存數據集大小上升到一定大小的時候,就會施行數據淘汰策略。

28、Redis 有哪些適合的場景?

會話緩存 (SessionCache)
最常用的一種使用 Redis 的情景是會話緩存(sessioncache)。用 Redis 緩存會話比其他存儲(如 Memcached) 的優勢在于:Redis 提供持久化。當維護一個不是嚴格要求一致性的緩存時,如果用戶的購物車信息全部丟失,大部分人都會不高興的,現在,他們還會這樣嗎?

幸運的是,隨著 Redis 這些年的改進,很容易找到怎么恰當的使用 Redis 來緩存會話的文檔。甚至廣為人知的商業平臺 Magento 也提供 Redis 的插件。

全頁緩存(FPC)
除基本的會話 token 之外,Redis 還提供很簡便的 FPC 平臺。回到一致性問題,即使重啟了 Redis 實例,因為有磁盤的持久化,用戶也不會看到頁面加載速度的下降,這是一個極大改進,類似 PHP 本地 FPC。

再次以 Magento 為例,Magento 提供一個插件來使用 Redis 作為全頁緩存后端。
此外,對 WordPress 的用戶來說,Pantheon 有一個非常好的插件 wp-redis,這個插件能幫助你以最快速度加載你曾瀏覽過的頁面。

隊列
Reids 在內存存儲引擎領域的一大優點是提供 list 和 set 操作,這使得 Redis 能作為一個很好的消息隊列平臺來使用。Redis 作為隊列使用的操作,就類似于本地程序語言(如 Python) 對 list 的 push/pop 操作。

如果你快速的在 Google 中搜索 Redisqueues,你馬上就能找到大量的開源項目,這些項目的目的就是利用 Redis 創建非常好的后端工具,以滿足各種隊列需求。例如,Celery 有一個后臺就是使用 Redis 作為 broker,你可以從這里去查看。

排行榜 / 計數器
Redis 在內存中對數字進行遞增或遞減的操作實現的非常好。集合(Set) 和有序集合 (SortedSet) 也使得我們在執行這些操作的時候變的非常簡單,Redis 只是正好提供了這兩種數據結構。所以,我們要從排序集合中獲取到排名最靠前的 10 個用戶 - 我們稱之為“user_scores”,我們只需要像下面一樣執行即可:

當然,這是假定你是根據你用戶的分數做遞增的排序。如果你想返回用戶及用戶的分數,你需要這樣執行:
ZRANGEuser_scores010WITHSCORES
AgoraGames 就是一個很好的例子,用 Ruby 實現的,它的排行榜就是使用 Redis 來存儲數據的,你可以在這里看到。

發布 / 訂閱
最后(但肯定不是最不重要的) 是 Redis 的發布 / 訂閱功能。發布 / 訂閱的使用場景確實非常多。我已看見人們在社交網絡連接中使用,還可作為基于發布 / 訂閱的腳本觸發器,甚至用 Redis 的發布 / 訂閱功能來建立聊天系統!

29、Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個?

Redisson、Jedis、lettuce 等等,官方推薦使用 Redisson。

30、Redis 和 Redisson 有什么關系?

Redisson 是一個高級的分布式協調 Redis 客服端,能幫助用戶在分布式環境中輕松實現一些 Java 的對象(Bloomfilter,BitSet,Set,SetMultimap,ScoredSortedSet,SortedSet,Map,ConcurrentMap,List,ListMultimap,Queue,BlockingQueue,Deque,BlockingDeque,Semaphore,Lock,ReadWriteLock,AtomicLong,CountDownLatch,Publish/Subscribe,HyperLogLog)。

31、Jedis 與 Redisson 對比有什么優缺點?

Jedis 是 Redis 的 Java 實現的客戶端,其 API 提供了比較全面的 Redis 命令的支持;
Redisson 實現了分布式和可擴展的 Java 數據結構,和 Jedis 相比,功能較為簡單,不支持字符串操作,不支持排序、事務、管道、分區等 Redis 特性。Redisson 的宗旨是促進使用者對 Redis 的關注分離,從而讓使用者能夠將精力更集中地放在處理業務邏輯上。

32、Redis 如何設置密碼及驗證密碼?

設置密碼:config set require pass 123456 授權密碼:auth223456

33、說說 Redis 哈希槽的概念?

Redis 集群沒有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 個哈希槽,每個 key 通過 CRC16 校驗后對 16384 取模來決定放置哪個槽,集群的每個節點負責一部分 hash 槽。

34、Redis 集群的主從復制模型是怎樣的?

為了使在部分節點失敗或者大部分節點無法通信的情況下集群仍然可用,所以集群使用了主從復制模型,每個節點都會有 N - 1 個復制品.

35、Redis 集群會有寫操作丟失嗎?為什么?

Redis 并不能保證數據的強一致性,這意味這在實際中集群在特定的條件下可能會丟失寫操作。

36、Redis 集群之間是如何復制的?

異步復制

37、Redis 集群最大節點個數是多少?

16384 個。

38、Redis 集群如何選擇數據庫?

Redis 集群目前無法做數據庫選擇,默認在 0 數據庫。

39、怎么測試 Redis 的連通性?

ping

40、Redis 中的管道有什么用?

一次請求 / 響應服務器能實現處理新的請求即使舊的請求還未被響應。這樣就可以將多個命令發送到服務器,而不用等待回復,最后在一個步驟中讀取該答復。

這就是管道(pipelining),是一種幾十年來廣泛使用的技術。例如許多 POP3 協議已經實現支持這個功能,大大加快了從服務器下載新郵件的過程。

41、怎么理解 Redis 事務?

事務是一個單獨的隔離操作:事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中,不會被其他客戶端發送來的命令請求所打斷。事務是一個原子操作:事務中的命令要么全部被執行,要么全部都不執行。

42、Redis 事務相關的命令有哪幾個?

MULTI、EXEC、DISCARD、WATCH

43、Rediskey 的過期時間和永久有效分別怎么設置?

EXPIRE 和 PERSIST 命令。

44、Redis 如何做內存優化?

盡可能使用散列表 (hashes),散列表(是說散列表里面存儲的數少) 使用的內存非常小,所以你應該盡可能的將你的數據模型抽象到一個散列表里面。比如你的 web 系統中有一個用戶對象,不要為這個用戶的名稱,姓氏,郵箱,密碼設置單獨的 key,而是應該把這個用戶的所有信息存儲到一張散列表里面。

45、Redis 回收進程如何工作的?

一個客戶端運行了新的命令,添加了新的數據。
Redi 檢查內存使用情況,如果大于 maxmemory 的限制,則根據設定好的策略進行回收。一個新的命令被執行,等等。

所以我們不斷地穿越內存限制的邊界,通過不斷達到邊界然后不斷地回收回到邊界以下。

如果一個命令的結果導致大量內存被使用(例如很大的集合的交集保存到一個新的鍵),不用多久內存限制就會被這個內存使用量超越。

關于“關于 redis 緩存的面試題有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計9991字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 武定县| 麟游县| 平陆县| 当阳市| 莆田市| 公安县| 揭阳市| 玉山县| 禹州市| 盖州市| 礼泉县| 肇东市| 高清| 怀集县| 新巴尔虎左旗| 五莲县| 墨江| 思南县| 林西县| 潮州市| 彭山县| 收藏| 尚志市| 砀山县| 成武县| 华容县| 简阳市| 荔波县| 聂拉木县| 天祝| 乌恰县| 巩留县| 若羌县| 泸西县| 青川县| 博兴县| 东乌| 梁平县| 固始县| 哈尔滨市| 乐亭县|