이 모든 문제가 발생할 수 있습니다. 그러나 REDIS 비트 맵을 사용하여 응용 프로그램 내에서의 활동을 추적하고 싶습니다.Booksleeve로 Redis에서 C# 비트 배열을 반환하는 방법
using (var conn = new RedisConnection("localhost"))
{
conn.Open();
var b1 = conn.Strings.SetBit(1, "test:2012-07-25", 1, true);
conn.Wait(b1);
var b2 = conn.Strings.SetBit(1, "test:2012-07-25", 3, true);
conn.Wait(b2);
var arr = conn.Strings.Get(1, "test:2012-07-25");
conn.Wait(arr);
BitArray bits = new BitArray(arr.Result);
}
내가 어떤 문제없이 항목 (B1 & B2)를 추가 할 수 있습니다 : 나는 다음과 같은 코드의 조각이있다. 그러나 비트 맵을 서버에서 비트 맵으로 다시 가져 오려고하면 제대로 작동하지 않습니다. 값이 설정되지만 비트가 완전히 잘못되었습니다. 비트를 반환하려고 Strings.Get 함수를 사용하여 뭔가 잘못하고 있다고 가정합니다,하지만 그것에 대해 갈 방법을 모르겠습니다. 유일하게 분명한 방법은 내가 관심이있는 각 날짜에 대해 getbit에 개별 호출을하는 것이지만 이것은 서버에 많은 양의 라운드 트립을 가져 오는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다!
당신이 답을 찾았 기 때문에 기쁩니다. 그러나 비트 인덱스는 거의 항상 ** 오른쪽에서 왼쪽으로 쓰여 있습니다. 그런 식으로, 비트 0은 LSB입니다. 얼마나 오랫동안 끝날 지에 관계없이 –
@MarcGravell 피드백을 보내 주셔서 감사합니다. index가 user_id를 반영하는 데 사용되는 다음 예제와 같이 인덱스가 의미있는 경우에만 실제로 중요합니다. 그게 의미가 있습니까? 아니면 뭔가 빠져 있습니까? http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps/ –
오, 맞아. 내가 본 것 같아. 말해 봐, 나 한테 맡겨. 나는 오늘 밤에 PC가 아니지만, 내일 모든 것이 잘되는지 아닌지를 점검 할 것이다. –