标签:
访问单个服务器
有时候需要为单个服务器指定特定的命令 。
IServer server = redis.GetServer("localhost", 6379);
GetServer方法会接收一个EndPoint类或者一个唯一标识一台服务器的键值对。GetServer 方法返回一个IServer对象。 方法也可以是异步的只需要传入一个async-state
可以使用如下方法获取所有可用的终结点:
EndPoint[] endpoints = redis.GetEndPoints();
使用IServer可以使用所有的shell命令,比如:
DateTime lastSave = server.LastSave();
ClientInfo[] clients = server.ClientList();
如果报错在连接字符串后加 ,allowAdmin=true;
同步 、异步、即发即弃
这是StackExchange.Redis的三种主要使用机制:
同步-在方法返回之前阻塞调用方(虽然会阻塞调用方,但绝不会阻塞其他线程 ,StackExchange.Redis中的关键点是共享调用者之间的连接)
异步-在未来的某个时间点操作完成,会立刻返回一个 Task 或者 Task<T> : 之后可以调用
.Wait() 阻塞当前线程,直到处理完成。
ContinueWith 添加一个回调函数
使用 await 这是一个高级特性简化了操作
即发即弃-
在上面的示例中已经演示同步调用的方法 。
异步调用:
string value = "abcdefg";
await db.StringSetAsync("mykey", value);
...
string value = await db.StringGetAsync("mykey");
Console.WriteLine(value); // writes: "abcdefg"
即发即弃:通过配置 CommandFlags 来实现即发即弃功能,在该实例中该方法会立即返回,如果是string则返回null 如果是int则返回0.这个操作将会继续在后台运行,一个典型的用法页面计数器的实现:
db.StringIncrement(pageKey, flags: CommandFlags.FireAndForget);
StackExchange.Redis 使用-同步 异步 即发即弃 (三)
标签:
原文地址:http://www.cnblogs.com/fuqiang88/p/5460351.html