redis提供的五种数据类型
string(字符串),list(队列/栈),Hash(哈希),set(集合)及zset(sortedset) (有序集合)
1. 安装redis服务
通过redis-server.exe redis.conf启动服务
2. 下载客户端dll文件
ServiceStack.dll
ServiceStack.Interfaces.dll
ServiceStack.ServiceInterface.dll
在.net 项目中添加以上dll的应用
3. c#操作redis代码如下
创建redis对象实例
//直接创建redis客户端连接
//RedisClient redisClient=new RedisClient("127.0.0.1",6379);
//创建redis客户连接池
IRedisClientsManager iRedisClientsManager=new PooledRedisClientManager(new string[]{"127.0.0.1:6379"});
IRedisClient redisClient = iRedisClientsManager.GetClient();
a. string数据类型
redisClient.Set<int>("age", 22);
redisClient.Set<int>("age", 23);//key相同时会覆盖
redisClient.Set<string>("name", "张三");
redisClient.Set<string>("name", "张三new");
Console.WriteLine(redisClient.Get<string>("age"));
Console.WriteLine(redisClient.Get<string>("name"));
b. Hash
redisClient.SetEntryInHash("Person:1", "name", "zbc");
redisClient.SetEntryInHash("Person:1", "age", "22");
redisClient.SetEntryInHash("Person:1", "sex", "male");
redisClient.SetEntryInHash("Person:1", "birth", "2011-2-2");
//List<string> list = redisClient.GetHashKeys("Person:1");//获取所有key
List<string> list = redisClient.GetHashValues("Person:1");//获取所有values
foreach (string s in list)
{
Console.WriteLine(s);
}
c. list->queue
redisClient.EnqueueItemOnList("name1","zbc0");
redisClient.EnqueueItemOnList("name1", "zbc1");
redisClient.EnqueueItemOnList("name1", "zbc2");
redisClient.EnqueueItemOnList("name1", "zbc3");
redisClient.EnqueueItemOnList("name1", "zbc4");
for (int i = 0; i < redisClient.GetListCount("name1"); i++)
{
Console.WriteLine(redisClient.DequeueItemFromList("name1"));
}
list->stack
redisClient.PushItemToList("name2","zangbc1");
redisClient.PushItemToList("name2", "zangbc2");
redisClient.PushItemToList("name2", "zangbc3");
for (int i = 0; i < redisClient.GetListCount("name2"); i++)
{
Console.WriteLine(redisClient.PopItemFromList("name2"));
}
d. set
redisClient.AddItemToSet("set","set1");
redisClient.AddItemToSet("set", "set2");
redisClient.AddItemToSet("set", "set3");
redisClient.AddItemToSet("set", "set4");
redisClient.AddItemToSet("set", "set5");
redisClient.AddItemToSet("set1", "set6");
redisClient.AddItemToSet("set1", "set7");
redisClient.AddItemToSet("set1", "set8");
redisClient.AddItemToSet("set2", "set2");
redisClient.AddItemToSet("set2", "set3");
redisClient.AddItemToSet("set2", "set9");
HashSet<string> set = redisClient.GetAllItemsFromSet("set1");
//HashSet<string> set = redisClient.GetUnionFromSets(new string[] {"set", "set1"});//交集
//HashSet<string> set = redisClient.GetIntersectFromSets(new string[] { "set", "set2" });//并集
foreach (string s in set)
{
Console.WriteLine(s);
}
e. zset
redisClient.AddItemToSortedSet("sortedset", "aaaa");
redisClient.AddItemToSortedSet("sortedset", "bbbb");
redisClient.AddItemToSortedSet("sortedset", "cccc");
redisClient.AddItemToSortedSet("sortedset", "gggg");
redisClient.AddItemToSortedSet("sortedset", "eeee");
redisClient.AddItemToSortedSet("sortedset", "ffff");
List<string> set = redisClient.GetAllItemsFromSortedSet("sortedset");
foreach (string s in set)
{
Console.WriteLine(s);
}