2013-07-16 2 views
0

Исходя из Redis, мне нравится, что вы можете просто поместить любой бинарный blob в Redis, который просто рассматривается как строка. Это возможно, потому что строки Redis - это то, что они называют «двоичным безопасным». Это позволяет делать такие вещи, как rangequeries поверх строковых кодированных двоичных данных, что очень полезно для битовых операций и т. Д.Поддерживает ли Riak диапазон запросов по двоичным безопасным строкам?

Я изучаю Riak, и мне это нравится. У Riak, кажется, есть запросы диапазона, но я не уверен, что строки в Riak являются «двоичными» в вышеупомянутом смысле. Если нет, существует ли другой способ хранения двоичных данных в Riak и до сих пор часто задавать запросы по ним?

Благодаря

ответ

0

Поскольку вы упоминаете «запросы диапазон» Я предполагаю, что вы имеете в виду 2г (вторичные индексы), когда речь идет о 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, где я получаю хорошие ответы. В основном m/r должен быть достаточно быстрым для почти реального времени, если nr ключей для запроса невелик (что в моем случае). Благодарю. –

Смежные вопросы