μΊμ± μ λ΅μ κ³ λ―Όνλ€ λ³΄λ©΄ λ¨μν μ΄λ»κ² μ μ₯ν κ²μΈκ°λ₯Ό λμ΄μ,
무μμ μ μ₯ν κ²μΈκ°μ λν μ§λ¬Έμ λλ¬νκ² λ©λλ€.
μ΄λ° κ΄μ μμ Sieve μΊμλ λ¨μν μΊμκ° μλλΌ "μΊμ±ν λ°μ΄ν° μ체λ₯Ό μ λ³"νλ μ λ΅μ ꡬ쑰μ
λλ€.
κ·Έλ λ€λ©΄, μ΄ Sieve μΊμ λ‘μ§μ Redisμ ν¨κ» μ¬μ©νλ©΄ μ΄λ€ μ΄μ μ΄ μμκΉμ?
μ΄λ² κΈμμλ κ·Έ κ°λ₯μ±κ³Ό ꡬ쑰λ₯Ό μ€λ¬΄μ μΌλ‘ μ 리ν΄λ³΄μμ΅λλ€.
Sieve μΊμλ λ¨μν ν€-κ° μ μ₯μκ° μλλΌ μΊμ μ μ₯ μ¬λΆλ₯Ό μ λ³νλ λ‘μ§μ΄ ν¬ν¨λ ꡬ쑰μ λλ€.
λ³΄ν΅ λ€μκ³Ό κ°μ 쑰건μΌλ‘ λμν©λλ€:
filter(key, value) 쑰건μ ν΅κ³Όν κ²½μ°λ§ μΊμμ μ μ₯β λΆνμν λ°μ΄ν°λ μ²μλΆν° μ μ₯νμ§ μμ β μΊμ λλΉ μ΅μν
Redisλ in-memory κΈ°λ°μ κ³ μ ν€-κ° μ μ₯μλ‘, TTL κ΄λ¦¬μ μΊμ 곡μ μ κ°μ μ κ°κ³ μμ΅λλ€.
| νλͺ© | Redisκ° μ 곡νλ κΈ°λ₯ |
|---|---|
| TTL λ§λ£ | EXPIRE, SETEX, TTL λ±μΌλ‘ λ°μ΄ν° μλͺ
μλ κ΄λ¦¬ |
| λΆμ° μΊμ | μ¬λ¬ μΈμ€ν΄μ€ κ° κ³΅μ κ°λ₯ν μ€μ μΊμ |
| λΉ λ₯Έ μ‘°ν | RAM κΈ°λ° μ μ₯μΌλ‘ μ΄κ³ μ λ°μ΄ν° μ κ·Ό |
μ¦, Redisλ Sieve μΊμμ μ μ₯μ μν μ λ§‘κΈ°μ μμ£Ό μ ν©ν©λλ€.
[μμ²]
βββ Sieve νν°(key, value)
ββ 쑰건 ν΅κ³Ό β Redis.set(key, value, TTL)
ββ 쑰건 μ€ν¨ β μ μ₯νμ§ μμ
[μμ²]
βββ 1μ°¨: λ©λͺ¨λ¦¬ μΊμ(Map) μ‘°ν
ββ μ μ€ β λ°λ‘ λ°ν
ββ μ€ν¨ β Redis μ‘°ν
ββ μ μ€ β λ©λͺ¨λ¦¬ μΊμ μ
λ°μ΄νΈ
ββ μ€ν¨ β DB μ‘°ν + νν° β Redis + λ©λͺ¨λ¦¬ μ μ₯
| μν© | Sieve + Redis λμ ν¨κ³Ό |
|---|---|
| λ°μ΄ν° μμ΄ λ§κ³ λλΆλΆμ μ¬μ¬μ©λμ§ μμ | μΊμ λΆν κ°μ |
| μ€μν νλͺ©λ§ μΊμ±νκ³ μΆμ | 컀μ€ν νν°λ‘ μ μ΄ |
| λ€μ€ μΈμ€ν΄μ€/λ§μ΄ν¬λ‘μλΉμ€ ꡬ쑰 | Redisλ‘ κ³΅μ μΊμ κ΅¬μ± |
| TTL λ§λ£ κ΄λ¦¬κ° νμν¨ | Redisκ° μλ μ²λ¦¬ |