Использование распределенной базы данных или хранилища значений ключей больше зависит от ваших эксплуатационных требований, чем от проблемы вашего домена.
Когда люди спрашивают, как выполнять упорядоченные по времени запросы в Riak, мы обычно предлагаем несколько стратегий (хотя ни один из них не является серебряной пулей, так как у Riak отсутствуют запросы упорядоченного диапазона):
1) Если вы часто обращаетесь к фрагменту времени определенного размера, разбейте свои данные на сегменты, отражающие этот период.Например, все данные за указанный день, час или минуту будут либо сохраняться, либо связываться с ними из корзины, содержащей соответствующую метку времени.Если бы я хотел получить все технические новости с сегодняшнего дня, название корзины могло бы быть «tech-20100616».По мере поступления ваших данных добавьте соответствующие ссылки из временного блока в фактический элемент.
2) Если данные более ориентированы на последовательность и не связаны с конкретным моментом времени, используйте ссылки для созданияцепочка данных, связывающая назад во времени, вперед или оба.(Это хорошо работает и для версионных данных, таких как вики-страницы.) Вам также может понадобиться сохранить объект, который просто указывает на начало списка.
Если оставить в стороне эти стратегии, Riak, вероятно, не является 100% решением.для самой последней информации, но может быть лучше для долгосрочного хранения.Вы можете объединить это с чем-то вроде Redis, memcached или даже MongoDB (который имеет отличную производительность, если ваши данные слегка изменчивы и могут поместиться в памяти), чтобы содержать скользящий индекс последних данных.