Skip to content

Latest commit

ย 

History

History
23 lines (9 loc) ยท 1.34 KB

LRU Cache.md

File metadata and controls

23 lines (9 loc) ยท 1.34 KB

LRU Cache(Least Recently Used)

Cache ๊ฐœ๋…

์บ์‹œ๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ๊ฐ’์„ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด ๋†“๋Š” ์ž„์‹œ ์žฅ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์บ์‹œ๋Š” ์ ‘๊ทผ ์‹œ๊ฐ„์— ๋น„ํ•ด ์›๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๋‚˜ ๊ฐ’์„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค. ์บ์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด ๋†“์œผ๋ฉด ๊ณ„์‚ฐ์ด๋‚˜ ์ ‘๊ทผ ์‹œ๊ฐ„ ์—†์ด ๋น ๋ฅธ ์†๋„๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. (์บ์‹œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์†Œ์Šค์˜ ์–‘๋„ ์ œํ•œ์ด ์žˆ๋‹ค.)

LRU Cache ๊ฐœ๋…

LRU๋Š” Least Recently Used์˜ ์•ฝ์ž๋กœ OS์˜ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜๋กœ ์ตœ๊ทผ์— ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์บ์‹œ์— ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•œ๋‹ค.

LRU Cache ๊ตฌํ˜„

img

LRU Cache ๊ตฌํ˜„์€ Doubly Linked List๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ๋‹ค. head์— ๊ฐ€๊นŒ์šด ๋ฐ์ดํ„ฐ์ผ์ˆ˜๋ก ์ตœ๊ทผ์— ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ์ด๊ณ , tail์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ, ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋˜๋„๋ก ํ•œ๋‹ค.

์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด head๋กœ ์˜ฎ๊ฒจ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด๊ฒŒ ๋˜๊ณ , ์‚ญ์ œ๋  ์šฐ์„ ์ˆœ์œ„์—์„œ ๋ฉ€์–ด์ง€๊ฒŒ ๋œ๋‹ค.