您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

这是ServiceStack Redis的有效用法吗?

这是ServiceStack Redis的有效用法吗?

实际上,当您使用时PersonClient.Lists["urn:names:current"],实际上是在存储对不是线程安全的RedisClient连接的引用。可以在GUI或控制台应用程序中使用,但在多线程Web应用程序中则不理想。在大多数情况下,您想使用线程安全连接工厂,即

var redisManager = new PooledRedisClientManager("localhost:6379");

这非常像数据库连接池。因此,每当您要访问RedisClient时,其工作方式如下:

using (var redis = redisManager.GetClient())
{
    var allItems = redis.As<Person>().Lists["urn:names:current"].GetAll();
}

注意:这.As<T>是别名的.GetTypedClient<T> 缩写。另一个从redisManager执行类型化客户端的便捷快捷方式是:

var allItems = redisManager.ExecAs<Person>(r => r.Lists["urn:names:current"].GetAll());

我通常更喜欢IRedisClientsManager代码中传递,这样它就不会保留RedisClient连接,但可以在需要时访问它。

其他 2022/1/1 18:18:30 有514人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶