RedisClient Redis = new RedisClient("10.53.132.52");
Redis.SetEntry("key", "aa", new TimeSpan(0, 0, 5));
Redis.AppendToValue("key", "World!");
Redis.GetSubstring("key", fromIndex, toIndex);
var valueBytes = Redis.Get("key");
Encoding.UTF8.GetString(valueBytes);
Dictionary
View Code
var keysMap = new Dictionary();
20.Times(i => keysMap.Add("k" + i, "v" + i));
Redis.SetAll(keysMap);
var map = Redis.GetAll(keysMap.Keys);
var mapKeys = Redis.GetValues(keysMap.Keys.ToList());
Ilist
View Code
IList strList = Redis.Lists["list"];
var intValues = new List { 2, 4, 6, 8 };
intValues.ForEach(x => strList.Add(x.ToString()));
List strListValues = strList.ToList();
List toIntValues = strListValues.ConvertAll(x => int.Parse(x));
strList.Clear();
redis队列模型
View Code
int numMessages = 6;
IList messages0 = new List();
IList messages1 = new List();
string[] patients = new[] {"patient0", "patient1"};
for (int i = 0; i < numMessages; ++i)
{
messages0.Add(String.Format("{0}_message{1}", patients[0], i));
messages1.Add(String.Format("{0}_message{1}", patients[1], i));
}
using (var queue = new RedisSequentialWorkQueue(10, 10, "10.53.132.52", 6379, 1))
{
for (int i = 0; i < numMessages; ++i)
{
queue.Enqueue(patients[0], messages0);
queue.Enqueue(patients[1], messages1);
}
for (int i = 0; i < numMessages / 2; ++i)
{
queue.Update(patients[0], i, messages0 + "UPDATE");
}
queue.PrepareNextWorkItem();
var batch = queue.Dequeue(numMessages / 2);
// check that half of patient[0] messages are returned
for (int i = 0; i < numMessages / 2; ++i)
{
//Assert.AreEqual(batch.DequeueItems, messages0 + "UPDATE");
Console.WriteLine(batch.DequeueItems);
}
}
redis发布订阅模型