2017-06-12 45 views
0

我有一個128×1048576的字節矩陣,幾個客戶端可以快速讀取和寫入字節。這個矩陣可以被認爲代表圖像的像素。如何在redis中以最佳方式存儲字節矩陣以實現快速實時訪問?

此外,當客戶端掃描整個數據集的一部分時,客戶端需要能夠讀取該矩陣的整個128 x 128扇區。

我有使用Redis的一些可能的解決方案:

  1. 給圖像的每個像素自己的鑰匙,並要求客戶做出128×128讀取得到每個扇區。

  2. 創建8192個哈希來表示圖像的每個扇區。每個扇區中的像素將被表示爲這些散列中的字段。這意味着每個哈希將有128 x 128個字段。

在這兩種解決方案中,哪種方案更適合我的要求?

此外,在每個鍵/字段中存儲超過1個像素是否有優勢?如果是這樣,我如何確定在每個數據點上存儲的最佳字節數? (這會讓我的讀寫精度降低,但也會減少我的密鑰空間的大小)

如果您認爲使用redis集羣的更好的解決方案或者根本不使用redis,請不要猶豫提及它。

由於提前, 大教堂

回答

2

聽起來像一個完美的使用情況進行Redis的比特的數據結構 - 它是在Redis的網站完全記錄:https://redis.io/commands/bitfield

事實上,reddit的有近期(4月1日)做了一個驚人的項目稱爲與位域/ R /位,聽起來很像你想做什麼 - 下面是詳細信息:https://redditblog.com/2017/04/13/how-we-built-rplace

+0

我不知道我錯過了那個命令。我正在查看BIT算術命令,這些命令不支持在我的用例中需要的每次調用的多次讀/寫操作。謝謝! – Dom

+0

當然 - 去做一些令人敬畏的東西,然後將其標記爲正確的答案; p –

+0

對不起,我沒有標記它。感謝提醒我,我完全忘了。 – Dom

相關問題