發布時間: 2023-04-19 16:03:55
操作系統中剩余的空間總量是足夠的,但是當請求一個N字節的連續地址塊時,剩余的內存空間中沒有大小為N字節的連續空間,所以這些剩余的內存空間中小于N字節的連續內存空間就是內存碎片。?
內部原因:
內存分配器的分配策略決定操作系統無法做到“按需分配”。
Redis使用libc、jemalloc、tcmalloc多種內存分配器來分配內存,默認使用jemalloc。外部原因:
鍵值對大小不一樣,并且鍵值對可以被修改和刪除。
Redis申請內存空間分配時,對于大小不一的內存空間需求,內存分配器按照固定大小分配內存空間,分配的內存空間一般都會比申請的內存空間大一些,這會產生一定的內存碎片。上一篇: Redis sentinel機制
下一篇: python數字類型有哪幾種