【问题标题】:ServiceStack.Redis usage best practicesServiceStack.Redis 使用最佳实践
【发布时间】:2012-12-31 14:20:33
【问题描述】:

我们的系统每秒向 Redis 缓存发出大约 5000 个请求。我们一直在寻找在这种情况下使用 ServicStack.Redis 客户端的最佳实践。

我们的大多数调用都是针对使用 Typed 客户端的 HashSet:

RedisClient redisInstance = new RedisClient();

var redisTypedClient = redisInstance.As < CustomObject > ();
var data = redisTypedClient.GetValueFromHash(redisTypedClient.GetHash("hset:SetId"), recordId);

最初我们将“redisInstance”作为静态对象,它对少数请求运行良好,但一旦请求数量增加,它开始抛出以下异常: ServiceStack.Redis.RedisResponseException:意外回复

我们将“redisInstance”更改为本地对象,它开始正常工作。

对于我们是否以正确的方式使用它,我们仍然有些困惑。所以我的问题是: 我们用对了吗? PooledRedisClientManager 比这更好吗? 还有其他方法吗?

我们有大约 10 或 15 个不同类型的 redis 哈希集,我们非常频繁地为每个用户查询这些哈希集。

寻找一些好的建议。

【问题讨论】:

  • 我遇到了同样的问题。也找不到答案

标签: redis servicestack


【解决方案1】:

你可以试试看经理人

https://github.com/ServiceStack/ServiceStack.Redis/blob/master/tests/ServiceStack.Redis.Tests/ServiceStack.Redis/IRedisClientsManager.cs

repo 上的这个测试显示了 PooledRedisClientManager 的基本用法

https://github.com/ServiceStack/ServiceStack.Redis/blob/master/tests/ServiceStack.Redis.Tests/Issues/PooledRedisClientManagerIssues.cs

using (redisClient = (RedisClient)pool.GetClient())
{
     redisClient.Set("test", DateTime.Now);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-29
    • 2011-04-22
    • 2010-10-08
    • 2012-04-11
    • 2017-10-14
    • 2018-09-25
    • 2011-12-09
    • 2010-12-04
    相关资源
    最近更新 更多