2012-12-11 17 views
6

Şu anda "set" yapısını kullanarak redis ile çalışıyorum.Redis "nil" veya "boş liste veya set"

"Set" in otomatik olarak temizlenmesinin mümkün olup olmadığını bilmek istiyorum. "(Nil)" arasında

Daha genel bir soru, bir fark (bellek kullanımı) vardır: Else


GÜNCELLEME "set" periyodik boş temizlemek için bir cron/süreç bulmak ve "(boş bir liste veya grubu)"

örnek:

sadd x 1 
srem x 
smembers x 
(empty list or set) 

veya

cevap

6

Bu zaten otomatiktir. Bir takım boş olduğunda, ad alanından kaldırılır.

> flushall 
OK 
> sadd x 1 2 3 
(integer) 3 
> keys * 
1) "x" 
> srem x 1 2 3 
(integer) 3 
> keys * 
(empty list or set) 

Bu davranıştan yararlanmak için belirli bir şey yapmanız gerekmez.

İkinci sorunuzu yanıtlamak için, (nil) veya (boş liste veya set), yalnızca istemci programının bir yorumudur. Redis sunucusunda, her iki durumda da, giriş fiziksel olarak kaldırılmıştır ve ilişkili bellek boşalmıştır.

+0

Ancak bellekte "(boş liste veya set)" "(nil)" ile aynı mı? Çünkü x 1 x'i çalıştırırsanız, del x ve smembers x: komut istemi (nil) – Kakawait

+0

Evet, aynıdır. Ve btw, sadd x 1, del x ve smembers x de redis-cli ve Redis 2.6 ile "(boş liste veya set)" döndürür. –

+0

Ben bir Ubuntu olması durumunda Redd 2.2.12 de Didier ne dedi onaylamak 12.04 ve sürüm 2.6 kullanmıyor. son öğeyi sildikten ve boşalttıktan sonra onu ad alanından kaldıracaktır. – Maziyar

İlgili konular