我是Redis的新手,我不確定爲什麼這個查詢需要這麼長時間。它基本上是json對象的7mb字符串。我使用HGet key data
,它所花費的時間平均爲225毫秒。這實際上比同一虛擬化環境中的sql服務器慢。他們也有相同的分配資源。Redis 225 ms檢索哈希值
虛擬化環境中內置的延遲最差只有約9000
微秒。
我什至不能包裝我的頭周圍如何完全緩存內存需要比在sql中獲取相同的數據更長的時間。 redis服務器需要花費兩倍的時間。下面是一個字符串示例。
[ {"name":"Christopher", "advocate": "John"}, {"name": "Jane", "advocate": "John"}, etc..]
的SQL只是完全相同的信息表。
| name | advocate |
| ---------- | -------- |
| Christopher | John |
| Jane | John |
有我丟失的東西在Hash
較大的物體,這將提高性能?如果完全相同的查詢內存比sql慢,我不能證明任何人使用Redis。我明白,一旦我開始增加sql中的連接複雜性,我可以看到更多的重要性。但我認爲我在Redis中可能會缺少更多的東西。
如果您需要,我可以提供更多細節。
我該怎麼做才能改善時間? –
您提到了Pipes。我怎樣才能增加管道的大小?你也提到它沒有優化,我怎樣才能更有效地返回大對象?我應該將這些對象分離爲更多關鍵值以減小大小,並減少字段的json重複次數,並讓我的鍵成爲這些對象的表示形式? –
如果不需要操作來自Redis的JSON字段(即將數據存儲爲大塊) - 那麼我會建議使用輕量級壓縮算法(LZ4,Snappy,LZO等)壓縮數據客戶端。 )。 –