2014-02-24 24 views
0

我的應用程序需要兩個用例的緩存:Redis的作爲高速緩存,並使用相同的實例隊列

  1. 的Redis作爲緩存。我計劃使用allkeys-lru內存策略通過id緩存項目(JSON blob)。平均JSON項目將需要< 1 Mb。
  2. Redis作爲隊列。我決定使用Redis隊列API構建內容社交Feed(類似於Instagram或Facebook)。它將使用相同的內存策略。一個隊列的容量將爲〜1000個元素。平均隊列(表示每個用戶的饋送)將需要約10 Mb。

爲了兩個目的,我可以使用Redis的單個實例而沒有性能影響嗎?將它們分開以獲得更好的性能會更好嗎? 謝謝。

回答

1

沒有理由不去嘗試;但是,我建議在同一個redis實例中使用兩個數據庫,這樣如果您想要將大小調整爲兩個單獨的實例,則可以在db上獨立於另一個實例轉儲和重定位數據庫。

兩個實例會比一個實例快,但是直到您有一些想法瞭解您的需求之前,沒有任何意義將成本加倍 - 但如果涉及到這一點,保持數據庫的獨立性會使該過程稍微不痛。

0

Redis是單線程的,所以你可以用2個redis而不是1個來獲得更多的CPU資源。您仍然需要管理2個數據庫(可以很好地擴展,但它需要更多的備份操作等)。

如果你在Redis中不需要太多CPU能力(需要大量計算的函數,比如在LUA腳本中),我認爲你不會看到使用2個redis而不是1個redis的巨大差異。大多數情況下,I/O是驅動性能最慢的部分,而Redis是內存數據庫,所以不會產生太大影響。

相關問題