- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在类里面为我的 redisclient 使用 servicestack。我有一个如下所示的 redis 客户端:
public class MySuperClass{
....
RedisClient client = new RedisClient("localhost", 6379);
public int MySuperProperty{get; set:}
....
}
下面是我如何使用它来确保它在我使用后得到妥善处理:
private void GetInfoFromRedis(object sender, EventArgs e) {
using (client) {
client.Set<Human>("RedisKey", new Human {
Age = 29,
Height = 170,
Name = "HumanName"
});
}
}
我的问题是在我处理 client
之后,如果我使用同一个处理过的 client
向 redis 发出另一个请求,处理过的客户端成功地与 redis 数据库建立了另一个连接,但是这次连接保留在 CLIENT LIST 中。
最佳答案
请参阅ServiceStack.Redis documentation为了正确使用 ServiceStack Redis Client,即您应该将 Redis ClientManager 作为单例使用,最好是您在 IOC 中注册的单例,例如:
container.Register<IRedisClientsManager>(c =>
new RedisManagerPool("localhost:6379"));
然后将它注入(inject)到你的类中,例如:
public class MySuperClass
{
public IRedisClientsManager RedisManager { get; set; }
}
然后您可以在使用中从 Redis ClientManger 解析客户端,例如:
private void GetInfoFromRedis(object sender, EventArgs e)
{
using (var client = RedisManager.GetClient())
{
client.Set<Human>("RedisKey", new Human {
Age = 29,
Height = 170,
Name = "HumanName"
});
}
}
}
如果您不使用 IOC,您可以在静态属性中填充 IRedisClientsManager,例如:
public class MySuperClass
{
public static IRedisClientsManager RedisManager =
new RedisManagerPool("localhost:6379");
}
但重要的是从 IRedisClientsManager
解析一个 redis 客户端,然后在立即使用后处理它,例如在 using 语句中:
using (var redis = RedisManager.GetClient()) { ... }
关于c# - Servicestack RedisClient在处理后保持连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176280/
我在 Scala 中使用游戏框架。我还使用 RedisScala 驱动程序(这个 https://github.com/etaty/rediscala )与 Redis 通信。如果 Redis 不包含
我正在尝试通过 Redis 与 Django 和 Node.js 进行通信,但是当我尝试在 Node.js 中获取 on('message') 事件时,我收到了该事件 2 次... 我有这个: io.
我的排序命令是 “按 no_keys GET # GET msg:->msg GET msg:->count GET msg:*->comments” 它在 redis-cli 中工作正常,但在 Re
redisClient.get('abc', function(err, abcValue){ console.log(abcValue); abcValue = abcValue + 'id';
我尝试使用 RedisPubSubServer 但它不适用于关键通知,因为我需要订阅由模式指定的 channel 。所以我创建了自己的解决方案: public class RedisKeySubscr
这是关于 RedisClient ,这是一个 C++ 客户端。 我知道您不能在 Redis 中存储整数(在内部转换)。 RedisSyncClient::command 本身不支持整数,因为 Redi
我正在尝试使用 ServiceStack.Redis 库连接到 Redis,但出于某种原因,我无法创建 RedisClient 类的实例,无论何时创建。 . RedisClient redisClie
带有 IncrementKey 的 ActionSuccess 回调在事务中不起作用: public class Article { public long Id { get; set; }
我正在尝试实现事务性 StoreRelatedEntities。所以我需要从 ITypedRedisClient 或这个访问 RedisClient: using (var trans1 = redi
我正在使用 nekipelov/redisclient访问 Redis,我需要通过一次调用 Redis 来检索多个哈希数据以提高性能。 更具体地说,我正在尝试检索如下所示的多个哈希值: redis-c
public class MyEntity { public string Att1 { get; set; } public DateTime Att2 { get; set; }
我是一名优秀的程序员,十分优秀!