Ответы пользователя по тегу NoSQL
  • Какое key-value хранилище лучше?

    denver
    @denver
    Стоит ли использовать два различных key-value хранилища в одном проекте под разные типы данных?
    Обязательно, если под типом данных имеется в виду не картинки vs текст :) а время жизни данных, их количество, их актуальность, необходимость сортировок, фильтрации, поиска и т.п. Вон для кроме MySQL + Sphinx вроде и нет ничего лучше (готового).
    И вообще, NOSQL — not only SQL, что намекает ;)
    Ответ написан
  • Какое key-value хранилище лучше?

    denver
    @denver
    Нет лучшего NoSQL хранилища вообще, есть под задачи, у каждого плюсы и ограничения. Redis супербыстр когда оперативки больше чем данных, иначе он часто подгружает с диска и сводит на нет скорость (если это еще не переделали), хорош для очередей сообщений, списков (встроены сортировки), всякой мелкой инфы. memcache (не memcached) самый быстрый но не флашит на диск ничего (собсвенно оттого и). memcached простейший key-value с флашем (хорош для очередей сообщений и всяких счетчиков). У последних двух особенность multiget — взять много ключей за раз работает столько же сколько и один, так что хорош для хранения «превьюшек» данных по их id, когда сортированные списки хранятся где-то еще (в редис). MongoDB не просто key-value, в ней можно хранить целые документы (пост со всеми комментариями), некий компромисс между nosql и RDBMS. Hbase уже совсем замена RDBMS, один из самых быстрых когда речь идет о IO диска, соответственно эта NoSQL для постоянного хранения стопитцот миллиардов данных. Cassandra похоже конкурент Hbase, но аутсайдер, т.к. фейсбук/твиттер от нее отказываются ;) Про CouchDB и Riak я ничего особенного не слышал (может кто дополнит — мне интересно)
    Ответ написан
  • NoSQL. Redis. Kоличество online-человек

    denver
    @denver
    Ок, вариант получше :) хранить айдишники юзеров в поминутных ключах online_20110602_13_00, ..., online_20110602_13_59, устанавливая каждому TTL 15 минут, добывать с помощью sunion из последних 15 ключей. Если точность не особо важна, то можно не поминутно, а попятиминутно хранить.
    Ответ написан
  • NoSQL. Redis. Kоличество online-человек

    denver
    @denver
    По вашему варианту — если ж писать +1 по каждому запросу, то будет не кол-во онлайн пользователей, а хитов. Выходит, чтобы не было дубликатов по-любому нужно хранить ID пользователей.

    Я задачу решал так: записываю в редис (sadd) айдишник и ставлю/пролонгирую «отложенную» задачу (memcacheq) удалить его (srem) через 15 минут.
    Ответ написан