本篇博客介绍使用C#作为redis客户端的简单使用方法,我们会依赖ServiceStack.Redis。
首先,打开全宇宙最强的IDE——Visual Studio,新建一个控制台应用程序,然后选择菜单[工具]=>[NuGet程序包管理器]=>[程序包管理器控制台],输入以下命令
Install-Package ServiceStack.Redis
等到NuGet安装好对ServiceStack.Redis的引用以后,我们在解决方案资源管理器中查看“引用”,发现NuGet为我们添加了ServiceStack.Common,ServiceStack.Interfaces,ServiceStack.Redis,ServiceStack.Test四个程序集。
我们在Main方法中声明一个ServiceStack.Redis.RedisClient对象,在构造方法中提供redis server的ip、端口、密码等参数
//连接到redis服务器
RedisClient redisClient = new RedisClient(new RedisEndpoint("localhost", 6379));
别忘记在最上面加入using
using ServiceStack.Redis;
ServiceStack.Redis提供了对各种类型的各个命令的专用方法,对字符串的专用方法如下
redisClient.Set<string>("key", "hello,world!!!");
string key = redisClient.Get<string>("key");
Console.WriteLine("key=" + key);
程序会输出
key=hello,world!!!
redisClient.Remove("mylist");//为了方便多次运行,先把这个键删掉
//执行LPUSH命令
redisClient.PushItemToList("mylist", "a");
redisClient.PushItemToList("mylist", "b");
redisClient.PushItemToList("mylist", "c");
//执行LRANGE key 命令
List mylist= redisClient.GetRangeFromList("mylist", 0, -1);
foreach (string item in mylist)
{
Console.WriteLine("item from mylist:" + item);
}
//执行LPOP命令
redisClient.PopItemFromList("mylist");
mylist = redisClient.GetRangeFromList("mylist", 0, -1);
Console.WriteLine("after pop...");
foreach (string item in mylist)
{
Console.WriteLine("item from mylist:" + item);
}
程序输出如下
item from mylist:a
item from mylist:b
item from mylist:c
after pop...
item from mylist:a
item from mylist:b
redisClient.Remove("car:100");//为了方便多次运行,先把这个键删掉
redisClient.SetEntryInHash("car:100", "Name", "Benz S600");
redisClient.SetEntryInHash("car:100", "Price", "600");
redisClient.SetEntryInHash("car:100", "Color", "black");
Dictionary car= redisClient.GetAllEntriesFromHash("car:100");
foreach (string _key in car.Keys)
{
Console.WriteLine("{0}={1}", _key, car[_key]);
}
程序输出如下
Name=Benz S600
Price=600
Color=black
多亏了全宇宙最强的IDE——Visual Studio,我能够不查API,仅仅通过智能提示框就能够猜到某种类型有哪些专用方法,不仅我找累了,估计你也看累了。不过,ServiceStack.Redis提供了一个非常强大的方法
public RedisText Custom(params object[] cmdWithArgs);
这个方法强大到可以执行绝大多数的redis命令。来个例子先
RedisText result = redisClient.Custom(Commands.HMSet, "car:101", "Name", "BWM 200", "Price", 200, "Color", "white");
Console.WriteLine(result.Text);
//看看结果
car = redisClient.GetAllEntriesFromHash("car:101");
foreach (string _key in car.Keys)
{
Console.WriteLine("{0}={1}", _key, car[_key]);
}
程序返回
OK
Name=BWM 200
Price=200
Color=white
更多的用法,读者自己琢磨吧,哈哈~
最后,附上两个地址:
如果你需要查API什么的,剩下的就简单了。