来自Redis,我喜欢你可以将任何二进制blob放在Redis中,它只是被视为一个字符串。这是可能的,因为Redis字符串是他们所说的“二进制安全”。这使得在字符串编码的二进制数据上执行rangequeries之类的操作成为可能,这对于位集操作等非常有用。
我正在调查Riak,到目前为止我很喜欢。Riak似乎有范围查询,但我不确定Riak中的字符串是否在上面的意义上是“二进制安全的”。如果没有,有没有其他方法可以在Riak中存储二进制数据,并且仍然快速地对它们进行范围查询?
谢谢
发布于 2013-07-17 07:30:57
既然您提到了“范围查询”,我假设您在谈论Riak时指的是2i (二级索引)。
Riak中的_bin辅助索引键存储为普通老字节,排序(对于范围)是逐字节比较的。
大多数人使用UTF-8/ISO-8859-1字符串作为_bin索引中的键,但这不是必需的。
但是,请注意,HTTP API目前在这方面有点笨拙。这个SO问题详细地涵盖了这一点:URL-unsafe Secondary Index names in Riak do not work
有了protocol buffer,你只需向它抛出字节,它就不管了。
也就是说,目前我们的客户都是以UTF-8为中心的。具体地说,Java客户机期望索引值是UTF-8字符串。这将在2.0版本中解决。
https://stackoverflow.com/questions/17686668
复制相似问题