3
我在C#中使用Redis Servicestack。目前,我存儲數據的方式如下:ServiceStack Redis C#緩慢檢索數據
var listTypedRedis = db.As<MyObject>();
foreach (var obj in myObjects)
{
listTypedRedis.AddItemToList(listTypedRedis.Lists["urn:list"], obj);
}
我成功地存儲了約6000條記錄。我在檢索記錄時遇到問題,因爲它看起來比SQL慢。
接過Redis的138ms,拿了SQL 105ms
我檢索數據的方法如下:
return (db.As<MyObject>().Lists["urn:list"].GetAll());
有上面我的代碼有問題嗎?是因爲反序列化導致它變得如此慢?謝謝!
非常感謝您的回答。 AddRangeToList只接受列表類型。列表中有批處理方法嗎? –
slee
最終,redis中的所有內容都以字節(RedisNativeClient)存儲,字符串存儲在Utf8(RedisClient)中,而POCO類型只是在存儲爲TPoco - > JSON/string - > bytes(RedisTypedClient)之前序列化爲JSON。如果你想要一個類型化的API,你需要使用一個類型化的客戶端,例如查看'RedisClientList .AddRange' https://github.com/ServiceStack/ServiceStack.Redis/blob/master/src/ServiceStack.Redis/Generic/RedisClientList.Generic.cs#L176 –
mythz
明白了。再次感謝。目前,我在本地做所有事情,所以我想我不會看到太大的區別,如果我批量或不批改,對不對?另外,當我查看這個[link](https://github.com/ServiceStack/ServiceStack.Redis#speed)時,它看起來需要132.0076ms才能獲得3203條記錄,SQL需要更少的時間才能獲得很多記錄/對象。任何想法爲什麼? – slee