2015-04-09 18 views
6

, STRING operasyon bitiminden için ayarlanmış olması izin, örneğin: Neden SET işlem değildir yaptığıStack Exchange Redis - SetAdd vs StringSet ve vade <a href="https://github.com/StackExchange/StackExchange.Redis" rel="noreferrer">StackExchange.Redis</a> yılında

Task<bool> StringSetAsync(
RedisKey key, 
RedisValue value, 
TimeSpan? expiry = null, 
When when = When.Always, 
CommandFlags flags = CommandFlags.None); 

mı? 1 saatlik bir bitiminden ile (oluşturabilir veya varolan eklemek ya),

bir List<T> Verilen bir Redis Set öğeler eklemek:
Task<long> SetAddAsync(
RedisKey key, 
RedisValue[] values, 
CommandFlags flags = CommandFlags.None); 

Temelde, burada ben elde etmek istiyorum.

Nasıl yaparım? Yoksa List<T>'u serileştirmeli ve StringSet mu kullanmalıyım?

SREM gibi SET işlevlerini kullanmak ve mevcut SET'e (SET'in tamamını yeniden yazmak yerine) tek öğe eklemek istiyorum, bu yüzden STRING'u kullanmamaya çalışıyorum.

Herhangi bir öneri? SET (EX ve PX Düzenleyici kullanılan özellikle) ve: İlk soru için

+1

@marcgravell orda mısın? :) – RPM1984

+2

Evet, buradayım p –

cevap

7

(küme işlemleri olmadığı halde string işlemleri opsiyonel sona ermesini var neden): O Redis işlemleri maruz tutar olduğundan sadece olduğunu SETEX, son kullanma tarihinin ayarlanmasına olanak tanıyan dizgisi dizgidir. ayar SADD ayarında böyle bir parametre görüntülenmez. Bunun bir kısmı, son kullanımın tüm anahtarın (yani set setinin tamamı) geçerli olması durumunda, elemanın geçerlilik süresinin geçerli olacağı konusunda kafa karışıklığını önlemektir.

En iyi bahisten sonra, son kullanma süresinin açık olarak ayarlanması; redis seviyesinde, bu, EXPIRE, EXPIREAT, PEXPIRE veya PEXPIREAT; veya SE.Redis'te IDatabase'da: KeyExpire veya KeyExpireAsync. Bu,set setinden sonra yapılmalıdır; eğer set büyükse ve birden fazla parti gönderiyorsanız ve zamanaşımının sonuna yakın bir zamanda çalsa bile zaman aşımının ayarlandığından emin olmak istiyorsanız, ilk partiden sonra son kullanma tarihini göndermek isteyebilirsiniz.

+0

Mükemmel cevap. Teşekkürler! :) – RPM1984

İlgili konular