Guava, Memcached и Redis, почему мы выбрали Redis?

Redis задняя часть

Проще говоря, Redis — это база данных.
В отличие от традиционных баз данных, которые хранят данные на диске, Redis хранит данные в памяти, поэтому ее часто называют базой данных в памяти; в то же время хранилище Redis также называют базой данных NoSQL, нереляционной базой данных.
Поскольку Redis хранит данные в памяти, скорость чтения и записи будет очень высокой, поэтому Redis широко используется для кэширования или других сценариев, требующих высокой скорости чтения и записи.

Зачем использовать Redis

Redis был введен в архитектуру программного обеспечения, потому что он«Быстрый и сильный».

1. Быстрота означает высокую производительность

Скорость аппаратного обеспечения компьютера от низкой до высокой: жесткий диск - сеть - память - ЦП;

В традиционной базе данных, если вы обращаетесь к части данных в базе данных в первый раз, это обычно происходит медленно, потому что базе данных необходимо считывать данные с жесткого диска, а данные в Redis хранятся в памяти, поэтому скорость будет быть быстрее, чем с жесткого диска.Чтение данных с диска намного быстрее.

Таким образом, мы часто используем Redis в качестве кэша: в первый раз прочитайте данные из базы данных, поместите его в Redis, а затем напрямую доступ к Redis.

2. Сильный, относится к стабильности в сценариях с высоким параллелизмом (высокая доступность).

В сценариях с высоким параллелизмом ограничение доступа, которое может выдержать Redis, намного больше, чем у базы данных, поэтому мы можем рассмотреть возможность размещения данных, требующих большого количества параллельных операций чтения, в Redis;
Например, с функцией seckill всего за несколько секунд могут быть сотни тысяч посещений, а при непосредственном управлении базой данных она может быть уничтожена в одно мгновение.

Какие сценарии не подходят для установки Redis

Конечно,Нельзя сказать, что все сценарии и все данные подходят для размещения в Redis., обычно нам нужно учитывать следующие моменты:

  • Высока ли частота попаданий при запросе данных? Если частота попаданий в кеш очень низкая, нет необходимости помещать его в Redis;
  • Сколько операций чтения и записи данных существует? Если данные будут часто записываться (добавляться, изменяться, удаляться), а количество операций записи установлено больше, чем количество операций чтения, то нет необходимости использовать Redis;
  • Каков размер бизнес-данных? Если вы хотите хранить файлы, нет никакой необходимости помещать их в Redis.

Локальный кеш или Redis

Кэш делится на локальный кеш и распределенный кеш:

Локальный кеш

Такие, как Guava, Ehcache, даже для сохранения кэшированной карты, это локальный кэш;
Локальный кеш отличается малым весом и простотой реализации, а его жизненный цикл заканчивается с уничтожением JVM, однако при наличии нескольких экземпляров программы (разворачивается несколько наборов программ) кеш в каждом экземпляре не последовательный.

2. Распределенный кеш

Redis называется распределенным кешем.При наличии нескольких экземпляров программы каждый экземпляр может совместно использовать кэшированные данные в Redis, но в то же время из-за внедрения Redis необходимо обеспечить высокую доступность Redis, да и архитектура сложнее.

Redis or Memcached

Memcached также часто используется в качестве кеша, а также является типом распределенного кеша, так в чем же разница между ним и Redis?

  • Redis поддерживает более богатые типы данных, а Memcache поддерживает простой тип данных String;
  • Redis поддерживает сохранение данных, что позволяет сохранять данные в памяти на жесткий диск и загружать данные в память после перезапуска, в то время как Memcache сохраняет данные только в памяти;
  • Redis в настоящее время поддерживает модель кластера, но нет собственной модели кластера Memcached, потребители должны добиться самостоятельно;
  • Redis использует однопоточную мультиплексирующую модель ввода-вывода (Redis поддерживает многопоточность в последней версии 6.0); Memcached использует многопоточную модель мультиплексирования ввода-вывода.
Redis 和 Memcache  的区别
Разница между Redis и Memcache

Последний, но тем не менее важный,Вы собираетесь представить Redis? Использовать локальный кеш или распределенный кеш? Необходимо исходить из реальной ситуации проекта; Богатые типы данных Redis и поддержка персистентности больше подходят для нашего проекта.

Дядя, который знает код | Текст [Оригинал]


敬请关注会点代码的大叔
Пожалуйста, обратите внимание на дядю, который знает код