встретиться
Я смутно помню тот год, когда я был подростком, только что вошедшим в индустрию, когда мои волосы были еще такими густыми, а клетчатой рубашки в то время не было..., когда я думаю о густых волосах в прошлом, всегда слезы в уголках глаз (не бей, не бей) ,я написала).
Через несколько дней после прихода в компанию подошел хороший брат с парой волос на голове и сказал, что здесь есть старый проект, вы должны с ним ознакомиться, а завтра мы начнем разрабатывать новые требования. Они не дают мне места для опровержения, так что я могу сделать?Излишне говорить, что Мэнсин Санлянь (хороший, хороший, хороший) выглядит как мой бывший лидер перед руководством (надеюсь, он его не увидит).
Открыл проект со слезами на глазах, а в мозг понеслись новые технологии, ах, меня вырвало. Но когда я ввел Redis в Baidu, я был потрясен, и я никогда не оглядывался назад на этот путь выпадения волос.
Бэкхенд — это Antirez (автор Redis) yyds.
первое знакомство
Redis — этопара ключ-значениеВ отличие от многих баз данных «ключ-значение», значения в Redis могут бытьstring (строка), hash (хэш), list (список), set (набор), zset (упорядоченный набор), Bitmaps (битмап), HyperLogLog (статистика мощности), GEO (геоинформационное позиционирование)Он состоит из различных структур данных и алгоритмов, поэтому Redis может удовлетворить множество сценариев приложений.
А поскольку все операции с данными Redis выполняются в памяти, производительность чтения и записи потрясающая. Мало того, Redis также может сохранять данные памяти на жесткий диск в виде снимков и журналов, так что в случае сбоя питания или сбоя машины данные в памяти не будут «потеряны». В дополнение к вышеперечисленным функциям Redis также предоставляет дополнительные функции, такие как истечение срока действия ключа, публикация-подписка, транзакции, конвейеры, сценарии Lua и т. д.
короткий рассказ
Это снова моя любимая часть. В 2008 году, когда автор Redis, antirez (Сальваторе Санфилиппо), разрабатывал веб-сайт под названием LLOOGG, ему нужно было реализовать высокопроизводительную функцию очереди.Сначала она была реализована с использованием MySQL, но позже он обнаружил, что как бы для оптимизации оператора SQL веб-сайт не мог быть. Производительность LLOOGG была улучшена, и, поскольку он был застенчивым, он решил создать базу данных, посвященную LLOOGG, которая является предшественником Redis.
Позже Сальваторе Санфилиппо открыл исходный код Redis 1.0 на GitHub, возможно, он даже не думал, что Redis был так популярен позже.
Ссылки по теме
характеристика
1. Высокая скорость чтения и записи
По официальным данным скорость чтения и записи может достигать 100 000 в секунду, конечно, это также зависит от конфигурации сервера.
Причины высокой производительности чтения и записи Redis:
1).На основе работы памяти.
2) Реализованная на языке Си программа, реализованная на языке Си, "ближе" к операционной системе, а скорость выполнения относительно выше.
3) Использование модели с одним потоком и мультиплексированием ввода-вывода позволяет избежать проблемы параллельной конкуренции в многопоточной среде.
4) Автор сам строго полирует исходники. Объем кода невелик по сравнению с другими базами данных.
2. На основе хранения пары ключ-значение
Создавайте функции, подобные словарю, на основе отношения сопоставления ключ-значение, такие как Map в Java (лучший язык в мире, никто).
А значением в Redis может быть не только строка, но и определенная структура данных или алгоритм
3. Разнообразные функции
Помимо предоставления 5 часто используемых основных типов данных, он также предоставляет следующие функции:
1) Срок действия ключа истекает, что может быть использовано для реализации кэширования, распределенных блокировок и т.п.
2) Предоставляет базовые возможности публикации и подписки, которые можно использовать для реализации систем сообщений, но обычно системы предпочитают использовать специализированное промежуточное ПО для сообщений, такое как rabbitMQ.
3) Поддержка функции сценария Lua, например, нижний уровень распределенной структуры блокировки Redisson реализован с помощью сценария Lua.
4) Поддержка сохранения, сам Redis основан на памяти, поэтому он предоставляет два способа сохранения: AOF и RDB.
5) Для поддержки высокой доступности режим кластера Redis обеспечивает репликацию ведущий-ведомый, режим дозорного и режим кластера.Конечно, главный-подчиненный и дозорный обычно используются вместе.
6) Подождите (собачья голова и защита лица).... Последующие действия придут один за другим, хорошие братья, не волнуйтесь.
сцены, которые будут использоваться
1. Что можно сделать
1).Кэш, эта функция является основной причиной для большинства систем.Он может кэшировать горячие данные и распределять нагрузку на базу данных.
2) Система ранжирования, которая предоставляет списки и упорядоченные наборы, может разумно использовать эту структуру данных для ранжирования.
3) Для приложений счетчика, таких как подсчет посещений или воспроизведение, Redis, естественно, поддерживает функцию подсчета, и производительность подсчета также очень высока.
4) Социальные сети, нравится/не нравится, поклонники, общие друзья/избранное, push, pull-to-refresh и т. д. являются важными функциями сайтов социальных сетей, и структура данных, предоставляемая Redis, может относительно легко реализовать эти функции.
5) Система очереди сообщений, основанная на публикации и подписке Redis, может реализовать базовую функцию очереди сообщений, но рекомендуется использовать специальное промежуточное ПО для сообщений.
2. Что нельзя делать
Redis основан на работе с чистой памятью.Хотя текущая память достаточно дешева, при большом масштабе данных экономические затраты на использование хранилища Redis будут большими. Кроме того, если высокая доступность основана на репликации ведущий-ведомый, подчиненная библиотека копирует полный объем данных главной библиотеки, что означает, что объем данных, которые можно сохранить, ограничен.
Во-вторых, с точки зрения «горячих» и «холодных» данных (доступа) хранение «горячих» данных может повысить пропускную способность системы, тогда как хранение «холодных» данных — это, по сути, пустая трата памяти.
разбитые мысли
В последний месяц 2020 года ко мне пришла идея вести блог. После череды мучений я решил продолжить писать.
С одной стороны, в процессе ведения блога вы можете найти собственное слепое пятно для определенного пункта знаний, углубить свое понимание технических моментов, повысить глубину технических возможностей.
Во-вторых, изучение и понимание технических моментов полностью отличается от подачи этих технических моментов через вывод текста, что может значительно улучшить мои языковые способности.
В конце концов, благодаря обмену я могу столкнуться со многими гигантами (в будущем они будут называться моими братьями) (думая, что тело не может победить их), и каждый раз, когда я сталкиваюсь, я всегда чувствую себя сильнее. замечательный.
Затем в будущем я поделюсь вещью Redis, которая в основном от 0 до 1. Преувеличивая, это от начального до профессионального (эй, не шлепайте себя, не шлепайте себя), я надеюсь, хорошие братья нравится.
Наконец-то я развлекательный блоггер, приглашаю всех прийтиСтолкновение (взрыв мяса), спешить спешить......
Это конец этого вопроса.Если что-то не так, пожалуйста, оставьте сообщение в комментариях хороших братьев.Кроме того