Единственный минус (для меня во всяком случае) - это невозможность
использовать/подобрать аналоги операторам сравнения в SQL'евом WHERE
(как например для географических проектов с longitude/latitude и
поиском/выбором по ним). Надо делать что-то наподобие индекса по float
самому о_О
Как раз на монго недавно была статья, как они удобно работают с longitude/latitude.
А такая функция(аналог довольно сложного where) в редисе была бы интересной.
Вообще реально не потеряв скорость редиса реализовать её, как вы думаете?
BTW, при простом запросе(восточнее, западнее, южнее) в редисе реализуется через ZADD
redis 127.0.0.1:6379> zadd city 10001 "gorod_small" - добавляю город с широтой 10001(долготу отдельно)
(integer) 1
redis 127.0.0.1:6379> zadd city 10040 "gorod_medium" - очевидно
(integer) 1
redis 127.0.0.1:6379> zadd city 10080 "gorod_big" - самый западный город
(integer) 1
redis 127.0.0.1:6379> zrangebyscore city -inf +inf - все города
1) "gorod_small"
2) "gorod_medium"
3) "gorod_big"
redis 127.0.0.1:6379> zrangebyscore city 10000 +inf - все города западнее 10000
1) "gorod_small"
2) "gorod_medium"
3) "gorod_big"
redis 127.0.0.1:6379> zrangebyscore city 10050 +inf - все города западнее 10050
1) "gorod_big"
redis 127.0.0.1:6379>
Просто float -> integer (например 55.123 -> 551230000 - нулей сколько нужно)
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий