我们有一个系统每秒向Redis缓存发出大约5000个请求。我们一直在寻找在这种情况下使用ServicStack.Redis客户端的最佳实践。
我们的大多数调用都是针对使用Typed客户端的HashSets:
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哈希集,我们经常为每个用户查询。
寻找一些好的建议。
答案 0 :(得分:1)
您可以尝试取决于管理器
repo上的这个测试显示了PooledRedisClientManager的基本用法
using (redisClient = (RedisClient)pool.GetClient())
{
redisClient.Set("test", DateTime.Now);
}