2013-07-16 75 views
0

來自Redis,我喜歡你可以將任何二進制blob放在Redis中,它只是作爲一個字符串來對待。這是可能的,因爲Redis字符串就是他們所說的「二進制安全」。這使得可以在字符串編碼的二進制數據之上執行諸如rangequeries之類的東西,這對於位集操作等是非常有用的。Riak是否支持二進制安全字符串的範圍查詢?

我正在調查Riak並且我喜歡它。 Riak似乎有範圍查詢,但我不確定Riak中的字符串是否在上述意義上是「二進制安全」。如果沒有,是否有另一種方法可以將二進制數據存儲在Riak中,並且仍然可以快速對它們執行範圍查詢?

感謝

回答

0

既然你提到「範圍查詢」我假設你的意思2I(二級指標)談論了Riak的時候。

A _bin Riak中的二級索引鍵存儲爲普通舊字節,排序(對於範圍)是逐字節比較。

大多數人使用UTF-8/ISO-8859-1字符串作爲_bin索引中的密鑰,但這不是要求。

但是,請注意,目前HTTP API在這方面有點笨拙。這個SO問題詳細地介紹了這個問題:URL-unsafe Secondary Index names in Riak do not work

使用協議緩衝區,你可以在它上面拋出字節,它並不在意。

也就是說,我們目前的客戶目前在UTF-8方面都處於中心位置。具體來說,Java客戶端期望索引值是一個UTF-8字符串。這將在2.0版本中解決。

+0

我在談論範圍查詢的方式。我的意思是要求一種方法來獲得我的base-255編碼字符串的一部分。我實際上已經將這個帖子發佈給riak-users,在那裏我得到了一些很好的答案。基本上m/r應該足夠快,幾乎實時,只要鍵的nr值很小(這是我的情況)。謝謝。 –