Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Кэширование и Redis

Олег Дипникович Мастер (2452), открыт 2 часа назад
У меня в проекте на питоне идёт обращение к бд(sqlite3). Запросы отправляются очень часто. Узнал про кеширование, примерно понял(надеюсь верно): мне нужно обратиться к бд, получить данные об аккаунте пользователя, занести их в кеш и уже во все следующие разы брать их оттуда.

Узнал про редис, немного почитал и сразу такой вопрос: а надо ли мне это вообще делать и в чем разница? Та же база данных. Смысл мне делать почти полную копию бд и обращаться уже на эту копию? Плюсом почитал, кто-то пишет, что разницы в задержках при обращении вообще никакой нет. Подскажите и расскажите про это все подробнее, пожалуйста
2 ответа
[ ] [ ] Мастер (1194) 2 часа назад
Прикол редиса, что он невероятно быстрый. И суть его в том, что если на твой сервер будет поступать множество запросов (пара миллионов в секунду, допустим), то редис неплохой вариант для их хранения
Олег ДипниковичМастер (2452) 2 часа назад
То есть можно просто на него перейти, отказавшись от sqlite3?
[ ] [ ] Мастер (1194) Олег Дипникович, sqlite вообще специфичная вещь, мало кто ей пользуется, в основном юзают постгрес(часто) или mssql(не так часто) или что-то нереляционное типа монгодб. А по поводу редис, ты можешь в принципе, в теории, на него перейти целиком, но.. так никто не делает
Павел Михаловский Просветленный (36204) 1 час назад
Редис - база данных, которая хранит в данные в оперативке, а не на диске. Оперативка гораздо быстрее и соответственно скорость будет выше.
Редис - Отличный вариант для кэша. Грубо говоря ты запрашиваешь данные, вначале смотришь в кэше - если, там есть берешь оттуда, если нет, идёшь в базу и там спрашиваешь.

Если данных не очень много, можно все хранить прям в редисе. Все упирается в доступную оперативку. Единственное, там не таблицы, а ключ - значение, функционал сильно меньше, чем у SQL-баз.

Насчёт sqlite, [][] правильно говорит, что sqlite - это специфичная вещь. Грубо говоря база sqlite - это файлик, работа с которым происходит в коде. Он удобен, когда нужна база данных прямо на устройстве и не хочется разворачивать СУБД. Но проблема в том, что из-за того, что это файлик, будет тяжело обеспечить одновременную работу большого количества запросов. Обычно используют postgresql, mysql, mssql, еще oracle популярен.
Похожие вопросы