Redis: ν•΄μ‹œμ— 만료 κ΅¬ν˜„

에 λ§Œλ“  2011λ…„ 10μ›” 28일  Β·  44μ½”λ©˜νŠΈ  Β·  좜처: redis/redis

μ•ˆλ…•ν•˜μ„Έμš”, ν•΄μ‹œ 킀에 만료 μ‹œκ°„μ„ μ„€μ •ν•  수 μžˆλŠ”μ§€ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄, 각 킀에 λŒ€ν•΄ 만료 μ‹œκ°„μ΄ 5뢄인 ν•΄μ‹œμ— μ—°κ²°λœ ꡬ성원 λͺ©λ‘μ„ κ°–κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•©λ‹ˆκΉŒ?

κ°μ‚¬ν•©λ‹ˆλ‹€. 제 μ˜μ–΄λ‘œ 미리 μ£„μ†‘ν•©λ‹ˆλ‹€.

μ•ˆλΆ€, λ§₯슀

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κΈ€μŽ„, λ‚˜λŠ” 거의 ν•œ λ²ˆμ— 전체 ν•΄μ‹œλ₯Ό λ§Œλ£Œν•˜κ³  싢지 μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ‹€μ œλ‘œ ν•΄μ‹œλ₯Ό μ—¬λŸ¬ 개의 ν‚€λ‘œ λΆ„ν• ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 그것은 μž‘λ™ν•˜μ§€λ§Œ ν•΄μ‹œκ°€ ν•„μš”ν•œ 이유λ₯Ό λ¬»λŠ” 데 λ™μΌν•œ 인수λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ…Όλ¦¬μ μœΌλ‘œ κ΄€λ ¨λœ λͺ¨λ“  ν‚€λ₯Ό ν•¨κ»˜ κ·Έλ£Ήν™”ν•˜λŠ” 데 μ—„μ²­λ‚œ κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ ν‚€λ₯Ό μ €μž₯ν•˜λŠ” 일뢀 집합을 톡해 ν•΄λ‹Ή 계정을 μˆ˜ν–‰ν•΄μ•Ό ν•˜λ©° μ°Έμ‘° 무결성 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. λͺ¨λ‘ ν•  수 μžˆμ§€λ§Œ ν•΄μ‹œμ—μ„œ κ°œλ³„ ν‚€ 만료λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ” 것은 redisμ—μ„œ κ½€ 큰 λˆ„λ½μ²˜λŸΌ λŠκ»΄μ§‘λ‹ˆλ‹€. 그리고 Nλͺ…μ˜ λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ M개의 λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ ν•΄κ²°ν•˜λ„λ‘ ν•˜λŠ” 것이 κ°€μΉ˜κ°€ μžˆλ‹€κ³  ν™•μ‹ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  44 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”, ν•΄λ‹Ή νŠΉμ • ν•„λ“œμ— λŒ€ν•΄ λ‹€λ₯Έ μ΅œμƒμœ„ ν‚€λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ 만료 μ‹œκ°„μ΄ μžˆλŠ” λ‹€λ₯Έ ν•„λ“œμ™€ ν•¨κ»˜ μ €μž₯ν•˜κ³  λ‘˜ λ‹€ 가져와 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ—¬μ „νžˆ μœ νš¨ν•œμ§€ μ—¬λΆ€λ₯Ό 기반으둜 μ΄ν•΄ν•˜λ„λ‘ ν•˜λŠ” 것은 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€. ν˜„μž¬ μ‹œκ°„.

redis 127.0.0.1:6379> hset 만료:λ‚˜μ˜ 이름 ν†°
(μ •μˆ˜) 0
redis 127.0.0.1:6379> hget 만료:λ‚˜μ˜ 이름
"ν†°"

redis 127.0.0.1:6379> 만료 만료:me 10
(μ •μˆ˜) 1
redis 127.0.0.1:6379> 만료:me
(μ •μˆ˜) 8

...
...
...

redis 127.0.0.1:6379> 만료:me
(μ •μˆ˜) -1
redis 127.0.0.1:6379> hget 만료:λ‚˜μ˜ 이름
(무)

κ·Έλž˜μ„œ μž‘λ™ν•©λ‹ˆλ‹€

μš”μ²­μ΄ κ°œλ³„ ν•„λ“œλ₯Ό λ§Œλ£Œν•˜λŠ” 것이라고 μƒκ°ν•©λ‹ˆλ‹€. 전체 ν•΄μ‹œλ₯Ό λ§Œλ£Œν•˜λŠ” 것은 λ‹€λ₯Έ ν‚€λ₯Ό λ§Œλ£Œν•˜λŠ” 것과 λ™μΌν•©λ‹ˆλ‹€.

예, 저도 이 μš”κ΅¬ 사항을 μΆ©μ‘±ν–ˆμŠ΅λ‹ˆλ‹€. κ°œλ³„ ν•„λ“œλ₯Ό λ§Œλ£Œν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

만료 μ‹œκ°„μ΄ λ‹€λ₯Έ μ—¬λŸ¬ ν•΄μ‹œλ₯Ό μƒμ„±ν•˜λŠ” 데 νŠΉλ³„ν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

κΈ€μŽ„, λ‚˜λŠ” 거의 ν•œ λ²ˆμ— 전체 ν•΄μ‹œλ₯Ό λ§Œλ£Œν•˜κ³  싢지 μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ‹€μ œλ‘œ ν•΄μ‹œλ₯Ό μ—¬λŸ¬ 개의 ν‚€λ‘œ λΆ„ν• ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 그것은 μž‘λ™ν•˜μ§€λ§Œ ν•΄μ‹œκ°€ ν•„μš”ν•œ 이유λ₯Ό λ¬»λŠ” 데 λ™μΌν•œ 인수λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ…Όλ¦¬μ μœΌλ‘œ κ΄€λ ¨λœ λͺ¨λ“  ν‚€λ₯Ό ν•¨κ»˜ κ·Έλ£Ήν™”ν•˜λŠ” 데 μ—„μ²­λ‚œ κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ ν‚€λ₯Ό μ €μž₯ν•˜λŠ” 일뢀 집합을 톡해 ν•΄λ‹Ή 계정을 μˆ˜ν–‰ν•΄μ•Ό ν•˜λ©° μ°Έμ‘° 무결성 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. λͺ¨λ‘ ν•  수 μžˆμ§€λ§Œ ν•΄μ‹œμ—μ„œ κ°œλ³„ ν‚€ 만료λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ” 것은 redisμ—μ„œ κ½€ 큰 λˆ„λ½μ²˜λŸΌ λŠκ»΄μ§‘λ‹ˆλ‹€. 그리고 Nλͺ…μ˜ λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ M개의 λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ ν•΄κ²°ν•˜λ„λ‘ ν•˜λŠ” 것이 κ°€μΉ˜κ°€ μžˆλ‹€κ³  ν™•μ‹ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Kevin Menard와 Johan BergstrΓΆmμ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. 사싀 저도 같은 μ‹œλ‚˜λ¦¬μ˜€λŠ” μ„€λͺ… λ§Œλ‚¬λ‹€ 은 https : μ—¬κΈ° : //github.com/antirez/redis/issues/242, λ‚˜λŠ” μ‚΄λ°”ν† λ ˆμ— μ˜ν•΄ 주어진 읽기 μ˜κ²¬μ΄μžˆλ‹€.
λͺ¨λ“  ν•„λ“œλ₯Ό λ‹€μŒκ³Ό 같은 ν‚€λ‘œ λΆ„ν• ν•˜λ©΄: hashkey:field1 , hashkey:field2 ,.. μ΄λŸ¬ν•œ ν‚€λ₯Ό μ»¬λ ‰μ…˜μœΌλ‘œ κ΄€λ¦¬ν•˜κΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€. λͺ¨λ“  ν•„λ“œλ₯Ό μΏΌλ¦¬ν•˜λŠ” 것과 같이 KEYS 'patten'이 ν•„μš”ν•©λ‹ˆλ‹€...

λ¬Έμ•ˆ 인사,
λ©μΆ˜ν•‘

이것은 맀우 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. ν•΄μ‹œ λ‚΄λΆ€μ˜ νŠΉμ • ν‚€λ₯Ό λ§Œλ£Œν•˜λ €λŠ” μ΄μœ λŠ” μΊμ‹œλœ 섀정을 ν•΄μ‹œμ— μ €μž₯ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. ν‚€λ₯Ό μ„€μ •ν•œ ν›„ μžλ™μœΌλ‘œ ν‚€λ₯Ό λ§Œλ£Œμ‹œν‚€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. λ™μ‹œμ— λͺ¨λ“  섀정이 μ—…λ°μ΄νŠΈλœ 경우 전체 ν•΄μ‹œλ₯Ό μ’…λ£Œν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λͺ©λ‘μ—μ„œ μ΄λŸ¬ν•œ 섀정을 κ°€μ Έμ˜€κ³  λͺ©λ‘μ„ μ’…λ£Œν•˜λŠ” κΈ°λŠ₯이 ν•„μš”ν•©λ‹ˆλ‹€. μ„€μ •μ˜ λͺ¨λ“  μΈμŠ€ν„΄μŠ€λ₯Ό 찾지 μ•Šκ³ 

bjoshuanoah와 λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이제 ν•΄μ‹œ λŒ€μ‹  ttlκ³Ό ν•¨κ»˜ ν‚€λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 예:
ν•΄μ‹œ: ν•΄μ‹œ 이름 A - ν‚€ B - κ°’ C
ν‚€-κ°’: ν‚€ A_B - κ°’ C

이 κΈ°λŠ₯의 뢀쑱은 기술적으둜 λΆˆκ°€λŠ₯ν•©λ‹ˆκΉŒ μ•„λ‹ˆλ©΄ λ””μžμΈμ˜ μ„ νƒμž…λ‹ˆκΉŒ?

λ””μžμΈμ˜ 선택은 κ΅¬ν˜„μ„ ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” κ΅¬ν˜„μœΌλ‘œ μ΄μ–΄μ§‘λ‹ˆλ‹€.

:+1:

redis μžμ²΄κ°€ μ§€μ›ν•˜μ§€ μ•ŠλŠ” 이 κΈ°λŠ₯은 λ„ˆλ¬΄ μœ μš©ν•©λ‹ˆλ‹€.

μ˜€λŠ˜κΉŒμ§€ redisλŠ” 이 κΈ°λŠ₯을 κ΅¬ν˜„ν•  κ³„νšμ΄ μ—†μ—ˆμŠ΅λ‹ˆλ‹€ :-(

redis 127.0.0.1:6379> hset 만료:λ‚˜μ˜ 이름 ν†°
(μ •μˆ˜) 0
redis 127.0.0.1:6379> hget 만료:λ‚˜μ˜ 이름
"ν†°"

redis 127.0.0.1:6379> 만료 만료:me 10
(μ •μˆ˜) 1
redis 127.0.0.1:6379> 만료:me
(μ •μˆ˜) 8

...
...
...

redis 127.0.0.1:6379> 만료:me
(μ •μˆ˜) -1
redis 127.0.0.1:6379> hget 만료:λ‚˜μ˜ 이름
(무)

κ·Έλž˜μ„œ μž‘λ™ν•©λ‹ˆλ‹€

ν•΄μ‹œ ν…Œμ΄λΈ”μ—λŠ” ν•„λ“œκ°€ ν•˜λ‚˜λ§Œ μžˆμŠ΅λ‹ˆλ‹€. μ—¬λŸ¬ ν•„λ“œλŠ” μ–΄λ–»μŠ΅λ‹ˆκΉŒ? 그것은 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€!

@oylz - 이 κΈ°λŠ₯ μš”μ²­μ˜ μ›λž˜ μ˜λ„λŠ” 전체 ν‚€κ°€ μ•„λ‹ˆλΌ ν•΄μ‹œ λ‚΄λΆ€μ˜ νŠΉμ • ν•„λ“œ 의 만료λ₯Ό ν—ˆμš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

@itamarhaber
μ–΄λ–»κ²Œ μ΄λŸ°μ‹μœΌλ‘œ?:
hset 만료:λ‚˜μ˜ 이름1 tom1
hset 만료:λ‚˜μ˜ 이름2 tom2
hset 만료:λ‚˜μ˜ 이름3 tom3

만료:λ‚˜ 10

전체 ν•΄μ‹œ ν…Œμ΄λΈ”(expire:me)이 λ§Œλ£Œλ©λ‹ˆλ‹€.

@oylz μš°λ¦¬λŠ” μ™„μ „ν•œ ν•΄μ‹œκ°€ λ§Œλ£Œλœλ‹€λŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. μž‘λ™ν•˜μ§€λ§Œ μ—¬κΈ°μ„œλŠ” ν•΄μ‹œμ˜ 단일 ν•„λ“œμ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€( @itamarhaberκ°€ 이미 μ„€λͺ…ν–ˆλ“―이). 예λ₯Ό λ“€μ–΄ κ·€ν•˜μ˜ 경우 5초 후에 name1 ν•„λ“œλ₯Ό, 10초 후에 name2 ν•„λ“œλ₯Ό, 15초 후에 name 3 ν•„λ“œλ₯Ό μ–΄λ–»κ²Œ λ§Œλ£Œμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆκΉŒ? 이제 μ—¬κΈ°μ„œ λ…Όμ˜ 쀑인 μ‚¬μš© 사둀가 λͺ…확해지기λ₯Ό λ°”λžλ‹ˆλ‹€.

@nomi-ramzan
당신은 μ •λ§λ‘œ μ΄ν•΄ν•©λ‹ˆκΉŒ? @itamarhaberκ°€ λ§ν–ˆλ“―μ΄: "λ‚˜λŠ” 이 κΈ°λŠ₯ μš”μ²­μ˜ μ›λž˜ μ˜λ„κ°€ 전체 ν‚€κ°€ μ•„λ‹ˆλΌ ν•΄μ‹œ λ‚΄λΆ€μ˜ νŠΉμ • ν•„λ“œ 의 만료λ₯Ό ν—ˆμš©ν•˜λŠ” 것이라고 λ―ΏμŠ΅λ‹ˆλ‹€."

@nomi-ramzan
μ£„μ†‘ν•©λ‹ˆλ‹€. μ²˜μŒμ— 잘λͺ» λ‹΅μž₯ ν–ˆμŠ΅λ‹ˆλ‹€ . 보내야 ν•©λ‹ˆλ‹€.
예:
_redis 127.0.0.1:6379> hset 만료:λ‚˜μ˜ 이름 ν†°
(μ •μˆ˜) 0
redis 127.0.0.1:6379> hget 만료:λ‚˜μ˜ 이름
"ν†°"

redis 127.0.0.1:6379> 만료 만료:me 10
(μ •μˆ˜) 1
redis 127.0.0.1:6379> 만료:me
(μ •μˆ˜) 8

...
...
...

redis 127.0.0.1:6379> 만료:me
(μ •μˆ˜) -1
redis 127.0.0.1:6379> hget 만료:λ‚˜μ˜ 이름
(무)

κ·Έλž˜μ„œ μž‘λ™ν•©λ‹ˆλ‹€_

μ§€κΈˆμ€ 2020λ…„μž…λ‹ˆλ‹€. RedisλŠ” 이것을 μ‚΄νŽ΄λ΄μ•Ό ν•©λ‹ˆλ‹€.

우리 νšŒμ‚¬λŠ” 만료 ν•΄μ‹œ ν•„λ“œ κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.
그것은 κΈ°λ³Έ redis 4.0

이 κΈ°λŠ₯을 기본적으둜 μ œκ³΅ν•˜λ©΄ 큰 도움이 될 κ²ƒμž…λ‹ˆλ‹€.
감사 ν•΄μš”.

λ‚˜λŠ” 아직도 이것을 기닀리고 μžˆλ‹€

믿을 수 μ—†λŠ”! RedisλŠ” 아직 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€!

μ—¬κΈ°μ„œλ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. 만료λ₯Ό ν•΄μ‹œ ν•„λ“œλ‘œ μ„€μ •ν•˜λŠ” κΈ°λŠ₯이 있으면 정말 쒋을 κ²ƒμž…λ‹ˆλ‹€.

+1

믿을 수 μ—†λŠ”! RedisλŠ” 아직 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€!

이 κΈ°λŠ₯에 λŒ€ν•΄ +1

Redis 세계λ₯Ό λ°œκ²¬ν•˜κ³  μΊμ‹œλ₯Ό λ‹€μŒκ³Ό 같은 ν˜•μ‹μœΌλ‘œ μ €μž₯ν•˜λŠ” 것을 μƒμƒν–ˆμŠ΅λ‹ˆλ‹€.
1) 각 ν•΄μ‹œ ν…Œμ΄λΈ” - λ‚΄ API λ°©λ²•μž…λ‹ˆλ‹€.
2) ν•΄μ‹œ ν…Œμ΄λΈ”μ˜ ν–‰ - λ©”μ†Œλ“œμ˜ μž…λ ₯ λ§€κ°œλ³€μˆ˜μ˜ ν•΄μ‹œ ν•¨μˆ˜μ΄λ©° 값은 λ©”μ†Œλ“œμ˜ μ‘λ‹΅μž…λ‹ˆλ‹€.

이 κΈ°λŠ₯에 λŒ€ν•΄ +1

이 κΈ°λŠ₯에 λŒ€ν•΄ +1

+1

+1

+1

+1

ν•΄μ‹œμ˜ 만료 ν‚€κ°€ κ΅¬ν˜„λ˜μ§€ μ•Šμ€ νŠΉλ³„ν•œ μ΄μœ κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

이것이 아직 κ΅¬ν˜„λ˜μ§€ μ•Šμ€ μ΄μœ λŠ” 이 κΈ°λŠ₯에 ν•„μš”ν•œ μ‹œκ°„(CPU)κ³Ό 곡간(RAM)의 λ³΅μž‘μ„±μ΄ μ¦κ°€ν–ˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. μ ˆλŒ€ λ§ν•˜μ§€ λ§λΌλŠ” λ§μž…λ‹ˆλ‹€.

μ‹œκ°„ λ³΅μž‘λ„λŠ” 닀항식 μ‹œκ°„ μˆœμ„œλŒ€λ‘œ μ§„ν–‰λ©λ‹ˆκΉŒ? μ–΄λ–€ λͺ©μ μœΌλ‘œλ“  λ³΅μ œν•˜λ©΄μ„œ RAM을 많이 μ‚¬μš©ν•˜κ²Œ λ§Œλ“œλŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

이 κΈ°λŠ₯이 κ΅¬ν˜„λ˜λ©΄ redisκ°€ 인기λ₯Ό 크게 높일 것이라고 ν™•μ‹ ν•©λ‹ˆλ‹€.

이 κΈ°λŠ₯에 λŒ€ν•΄ +1

+1

+1

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰