@cache λ°μ½λ μ΄ν°λ λ©μλμ μ€ν κ²°κ³Όλ₯Ό μΊμνμ¬ μ±λ₯μ ν₯μμν΅λλ€. BentoCacheλ₯Ό κΈ°λ°μΌλ‘ λ©λͺ¨λ¦¬, Redis, DynamoDB λ± λ€μν μ€ν 리μ§λ₯Ό μ§μν©λλ€.
κΈ°λ³Έ μ¬μ©λ²
μ€μ (sonamu.config.ts)
μΊμλ₯Ό μ¬μ©νλ €λ©΄sonamu.config.tsμμ μ€μ μ΄ νμν©λλ€.
μΊμ μ€μ μ΄ μμΌλ©΄
@cache μ¬μ© μ μλ¬κ° λ°μν©λλ€.μ΅μ
ttl
μΊμ μ ν¨ μκ°μ μ§μ ν©λλ€.key
μΊμ ν€λ₯Ό μ§μ ν©λλ€. κΈ°λ³Έκ°:"{ModelName}.{methodName}:{serializedArgs}"
- μλ μμ± (κΈ°λ³Έ)
- κ³ μ ν€
- ν¨μλ‘ μμ±
store
μ¬μ©ν μΊμ μ€ν μ΄λ₯Ό μ§μ ν©λλ€. κΈ°λ³Έκ°:sonamu.config.tsμ default μ€ν μ΄
tags
μΊμ νκ·Έλ₯Ό μ§μ ν©λλ€. νκ·Έλ³λ‘ μΊμλ₯Ό μΌκ΄ 무ν¨νν λ μ¬μ©ν©λλ€.grace
grace, timeouts λ±μ κ³ κΈ μ΅μ
μ BentoCacheμ RawCommonOptionsμμ μ 곡λ©λλ€. μμΈν λ΄μ©μ
BentoCache λ¬Έμλ₯Ό μ°Έκ³ νμΈμ.- TTL λ΄: μ μ ν μΊμ λ°ν
- TTL λ§λ£ ν grace κΈ°κ° λ΄: Stale μΊμ μ¦μ λ°ν, λ°±κ·ΈλΌμ΄λμμ κ°±μ
- grace κΈ°κ° κ²½κ³Ό ν: μΊμ λ―Έμ€
Stale-While-Revalidateλ μ¬μ©μμκ² λΉ λ₯Έ μλ΅(Staleμ΄λΌλ μ¦μ)μ μ 곡νλ©΄μ, λ°±κ·ΈλΌμ΄λμμ
κ°±μ νμ¬ λ€μ μ¬μ©μλ μ μ ν λ°μ΄ν°λ₯Ό λ°κ² νλ ν¨ν΄μ
λλ€.
timeouts
μΊμ μμ μ νμμμμ μ€μ ν©λλ€.μΊμ 무ν¨ν
νκ·Έλ‘ λ¬΄ν¨ν
ν€λ‘ 무ν¨ν
μ 체 무ν¨ν
λ€λ₯Έ λ°μ½λ μ΄ν°μ ν¨κ» μ¬μ©
@apiμ ν¨κ»
@transactionalκ³Ό ν¨κ»
μΊμ μλ λ°©μ
1. μΊμ ννΈ
2. μΊμ λ―Έμ€
3. μΊμ κ°±μ
μ£Όμμ¬ν
1. CacheManager μ΄κΈ°ν νμ
sonamu.config.tsμμ cache μ€μ μΆκ°
2. μΈμ μ§λ ¬ν
볡μ‘ν κ°μ²΄λ μλμΌλ‘ JSON μ§λ ¬νλ©λλ€:3. null/undefined μΊμ±
nullκ³Ό undefinedλ μΊμλ©λλ€:
4. λΆμμ©μ΄ μλ λ©μλ
μΊμλ μμ ν¨μμλ§ μ¬μ©νμΈμ:μ±λ₯ μ΅μ ν
Multi-tier μΊμ±
λΉ λ₯Έ λ©λͺ¨λ¦¬ μΊμ + μμμ μΈ Redis μΊμ:μΊμ μμ
미리 μΊμλ₯Ό μ±μλκΈ°:λ‘κΉ
μΊμ ννΈ/λ―Έμ€λ₯Ό λ‘κΉ νλ €λ©΄ BentoCache μ€μ μ¬μ©:μμ λͺ¨μ
- API μλ΅ μΊμ±
- μ¬μ©μ νλ‘ν
- μ§κ³ λ°μ΄ν°
- κ²μ κ²°κ³Ό
λ€μ λ¨κ³
@api
API μλν¬μΈνΈ λ§λ€κΈ°
@transactional
νΈλμμ
μ¬μ©νκΈ°
BentoCache
BentoCache 곡μ λ¬Έμ
μ±λ₯ μ΅μ ν
μ±λ₯ μ΅μ ν κ°μ΄λ