Сверхдетальное изучение Redis (1) — запись

Redis

Что такое Редис

  • Базовые концепты

    Redis — это открытый исходный код, написанный на языке C, поддерживающий сетевое взаимодействие, может быть основан на памяти, а также может быть постоянной базой данных Key-Value (нереляционной базой данных).

  • Преимущества редис

  1. Быстро, потому что данные хранятся в памяти, аналогично HashMap, преимущество HashMap в том, что временная сложность поиска и работы составляет O(1)

  2. Поддержите насыщенные типы данных, строка поддержки, списка, набор, сортировку набор, хеш

  3. Транзакции поддерживаются, а операции атомарны, так называемая атомарность означает, что все изменения данных либо выполняются, либо не выполняются вообще.

  4. Богатые возможности: можно использовать для кеша, сообщения, установить время истечения срока действия в соответствии с ключом, он будет автоматически удален после истечения срока действия

Сценарии применения Redis

  • тайник

    (1) Для того, чтобы некоторые кеши возвращались к внешним данным, когда имеется большое количество SQL-операций базы данных, чтобы избежать запроса базы данных для каждого запроса интерфейса, некоторые данные могут быть кэшированы в Redis, что для получать данные непосредственно из памяти, скорость намного выше.

    (2) Веб-пользователи используются для входа в систему для кэширования данных сеанса.Некоторая информация о входе в систему сохраняется в сеансе и кэшируется в Redis.

  • очередь

    Интерфейс списка предоставляется в Redis. Этот список предоставляет lpush и rpop. Эти два метода являются атомарными и могут вставлять и извлекать элементы очереди.

  • хранилище данных

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

  • Блокировка Redis реализует механизм защиты от кистей

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

Примечание. Основные операции сценариев использования Redis будут объяснены в Redis Learning (3) — реальный бой.

установка и запуск Redis

  • Установка Redis.
  1. Redis относительно просто устанавливать себя, пожалуйста, Baidu

  2. Изменить конфигурацию пароля Redis

    Откройте файл конфигурации redis.windows.conf // Оконная система - это система Linux с Windows Redis.conf Найти потребности FOOBARED FOOBARED, удалите предыдущий # знак и измените FOOBARED на пароль Например, требуетсяepass 123456

    Обратите внимание на смену пароля, вам нужно перезапустить сервер Redis

  3. Как изменить фоновый запуск службы Redis

    Рекомендуемый блог: https://blog.csdn.net/ksdb0468473/article/details/52126009

  • Основные команды Redis
  1. Обнаружить команду запуска клиента Redis:

    redis-clis

  2. Запустите команду Redis:

    ./redis-server запускает redis напрямую Иногда необходимо запустить redis с фиксированным конфигурационным файлом (сбросом пароля), например redis-server redis/redis.windows.conf или ./redis-server ../redis.conf

  3. Команды, связанные со службой Redis

    Удалите службу: redis-server --service-uninstall

    Запустите службу: redis-server --service-start

    Остановить службу: redis-server --service-stop

Redis Basic Тип данных

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

  • строка (строка) Тип элемента хранения строк может быть string/int/float, а тип int может увеличиваться и уменьшаться. Фактический процесс работы кода:
[root@VM_160_197_centos /]# redis-cli
127.0.0.1:6379> set string1 koala
OK
127.0.0.1:6379> get string1
"koala"
127.0.0.1:6379> set string2 2
OK
127.0.0.1:6379> get string2
"2"
127.0.0.1:6379> incr string2
(integer) 3
127.0.0.1:6379> get string2
"3"
127.0.0.1:6379> decrby string2 2
(integer) 1
127.0.0.1:6379> get string2
"1"
  • список строк Тип списка — упорядоченный список, независимо от того, идет ли он слева направо или справа налево, и содержимое данных может повторяться. Фактический процесс работы кода:
[root@VM_160_197_centos /]# redis-cli
127.0.0.1:6379> lpush list1 12
(integer) 1
127.0.0.1:6379> lpush list1 13
(integer) 2
127.0.0.1:6379> lpush list1 12
(integer) 3
127.0.0.1:6379> rpop list1
"12"
127.0.0.1:6379> lpush list2 12
(integer) 1
127.0.0.1:6379> lpush list2 13
(integer) 2
127.0.0.1:6379> lpush list2 12
(integer) 3
127.0.0.1:6379> llen list2
(integer) 3
127.0.0.1:6379>
  • Коллекция строк (набор)

    Тип набора обеспечивает неупорядоченный способ хранения нескольких различных элементов.Значение каждого элемента в типе набора отличается.Пользователи могут быстро добавлять или удалять значения в элементах и ​​проверять, существуют ли определенные значения.Повторяющиеся элементы не могут быть вставлены в коллекцию. Фактический процесс работы кода:

127.0.0.1:6379> sadd set1 12
(integer) 1
127.0.0.1:6379> sadd set1 12
(integer) 0
127.0.0.1:6379> scard set1
(integer) 1
127.0.0.1:6379> sadd set1 13
(integer) 1
127.0.0.1:6379> scard set1
(integer) 2
127.0.0.1:6379> sadd set1 13
(integer) 0
127.0.0.1:6379> sismember set1 13  //查看13是否在集合中
(integer) 1
127.0.0.1:6379> srem set1 13    //从集合中删除13
  • хэш

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

Фактический процесс работы кода:

[root@VM_160_197_centos /]# redis-cli
127.0.0.1:6379> hset hash1 key1 12
(integer) 1
127.0.0.1:6379> hget hash1 key1
"12"
127.0.0.1:6379> hset hash1 key2 13
(integer) 1
127.0.0.1:6379> hset hash1 key3 13
(integer) 1
127.0.0.1:6379> hlen hash1//查询条数的时候只要是健不一样,就是不同的条数,尽管值是相同的。
(integer) 3
127.0.0.1:6379> hset hsah1 key3 14
(integer) 1
127.0.0.1:6379> hset hash1 key3 14
(integer) 0
127.0.0.1:6379> hget hash1 key3
"14"
127.0.0.1:6379> hmget hash1 key1 key2  //同时获取key1和key2的值
1) "12"
2) "13"
  • отсортированный набор строк

Больной набор также называется упорядоченным набором баллов.Его можно рассматривать как ранговый список.Каждый студент имеет свой собственный балл,а также в рейтинговом списке есть атрибут ранжирования.Также он продолжает расти. , этот тип немного сложный, давайте сфотографируем.

image
image

функция набора сортировки

1) Значения в соре множестве глобально уникальны.

После того, как значение установлено, его повторная установка не увеличит, а только перезапишет изменение.

2) Если две оценки одинаковы, как должен выглядеть рейтинг? Если значения двух дробей совпадают, они будут отсортированы в соответствии с лексикографическим порядком имен переменных двух элементов См. Код операции ниже.

Фактический процесс работы кода:

127.0.0.1:6379[1]> zadd zset1 10.1 val1 //添加一个值和分数
(integer) 1
127.0.0.1:6379[1]> zadd zset1 11.1 val2
(integer) 1
127.0.0.1:6379[1]> zadd zset1 9.2 val3
(integer) 1
127.0.0.1:6379[1]> zcard zset1 //统计当前key下值的个数
(integer) 3
127.0.0.1:6379[1]> zrange zset1 0 2 withscores  //查看0到2的所有值和分数按照排名
1) "val3"
2) "9.1999999999999993"
3) "val1"
4) "10.1"
5) "val2"
6) "11.1"
127.0.0.1:6379[1]> zrank zset1 val2
(integer) 2
127.0.0.1:6379[1]> zadd zset1 12.2 val3 //覆盖iu该val3
(integer) 0
127.0.0.1:6379[1]> zrange zset1 0 2 withscores//查看0到2的所有值和分数按照排名
1) "val1"
2) "10.1"
3) "val2"
4) "11.1"
5) "val3"
6) "12.199999999999999"
127.0.0.1:6379[1]> zadd zset1 12.2 val2
(integer) 0
127.0.0.1:6379[1]> zrange zset1 0 2 withscores//这时候有两个分数相同,查看0到2的所有值和分数按照排名
1) "val1"
2) "10.1"
3) "val2"
4) "12.199999999999999"
5) "val3"
6) "12.199999999999999"

рекомендуемая статья:Сверхдетальное изучение Redis (2) — продвинутый уровень Сверхдетальное изучение Redis (3) - доработка фактической боевой сводки в проектеВ более поздний период серия Redis будет постоянно обновляться, включая конкретный контент в реальном бою.В то же время рекомендуется также прочитать документацию на официальном сайте Redis, хе-хе.

Думаете, эта статья была вам полезна? пожалуйста, поделитесь с большим количеством людей

Приглашаю всех обратить внимание на мой официальный аккаунт - руководство по развитию программистов. Пожалуйста, найдите WeChat самостоятельно - "Руководство по развитию программиста"