2016-11-16 5 views
2

값을 원자 단위로 읽은 다음 StackExchange C# 드라이버를 사용하여 Redis에서 값을 쉽게 삭제할 수 있습니까?
Redis에서 항목을 버퍼링하고 특정 임계 값에 도달하면 항목을 검색하지만 내 버퍼를 플러시하려고합니다. 목록에 항목을 저장하고 "버퍼를 비우는 중"이라고 말하면 목록을 삭제하고 싶습니다.
"키": [항목 목록] 당신은 트랜잭션을 생성하고 GET을 수행 할 수 있습니다StackExchange.Redis를 사용하여 Redis에서 원자 읽기 및 삭제

+1

A [트랜잭션]에 감싸 (https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/Transactions.md)? – apokryfos

+1

http://www.rediscookbook.org/get_and_delete.html도 StackExchange.Redis와 함께 사용해야합니다. –

+0

@apokryfos 정확히! 좋은 지적! 감사! – Ben

답변

3

/DEL 원자,이 같은 :

var db = connectionMultiplexer.GetDatabase(); 
var tran = db.CreateTransaction(); 
var getResult = tran.StringGetAsync(key); 
tran.KeyDeleteAsync(key); 
tran.Execute(); 
var value = getResult.Result; 

이 레디 스에 다음 명령을 보냅니다 :

MULTI 
GET "key" 
DEL "key" 
EXEC 
+0

키가 목록이라면,'tran.ListRangeAsync'에 대한 호출을 변경해야합니다. – thepirat000

+0

그건 정확히해야 할 일입니다! – Ben