Поиск по сайту:

Можно убежать из отечества, но нельзя убежать от самого себя (Гораций).

LUA-скрипты Redis

2 мин для чтения
FavoriteLoadingДобавить в избранное
4 апреля 2022
Установка и запуск WordPress на Ubuntu с кэшем Redis
Redis — это бесплатная размещаемая в памяти база данных с открытым исходным кодом, широко используемая в качестве механизма кэширования или брокера сообщений.

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

 

Требования

Чтобы лучше следовать этой статьи, мы рекомендуем установить в вашей системе последнюю версию сервера Redis.

Базовые знания Redis полезны для понимания команд, показанных в этой статье.

 

Команда Redis EVAL

Чтобы запускать команды Lua в Redis, вам нужно использовать команду EVAL. Команда указывает Redis выполнять код как сценарий Lua на стороне сервера.

Пример показан ниже:

127.0.0.1:6379> EVAL "redis.call('SET', KEYS[1], ARGV[1])" 1 key value

 

В приведенном выше примере мы начинаем с команды EVAL, за которой следует сценарий Lua. Скрипт использует функцию redis.call. Затем мы передаем команду для запуска, ключ и значение в качестве аргументов. Это похоже на запуск значений ключа SET.

Обратите внимание, что KEYS и ARGV обозначают аргументы скрипта. В этом случае мы указываем количество ключей как 1.

Разбор аргументов выполняется через ARGV, который содержит таблицу аргументов. В нашем случае мы передаем значение ключа.

Затем мы можем получить доступ к ключам, начиная с индекса 1.

Примечание
Рекомендуется указывать все ключи, используемые в сценарии, в разделе KEYS, а все остальные аргументы — в разделе ARGV.

 

Мы можем получить значение ключа с помощью команды get:

127.0.0.1:6379> EVAL "redis.call('GET', KEYS[1])" 1 key

 

Это должно вернуть значение указанного ключа.

 

Команда Redis EVALSHA

Redis также предоставляет вам команду EVALSHA для вызова команды на основе ее хеш-значения.

Это устраняет необходимость перепечатывать сценарий каждый раз, когда он вам нужен.

Пример:

SCRIPT LOAD "return redis.call('get', KEYS[1])"

 

Приведенная выше команда должна возвращать значение SHA как:

"4e6d8fc8bb01276962cce5371fa795a7763657ae"

 

Затем вы можете использовать это значение sha для вызова команды.

127.0.0.1:6379> EVALSHA 4e6d8fc8bb01276962cce5371fa795a7763657ae 1 key
"value"

 

Читать  Частные методы в Python

Чтобы удалить все загруженные скрипты, выполните команду:

127.0.0.1:6379> SCRIPT FLUSH
OK

 

Приведенная выше команда должна очистить кеш скрипта.

 

Заключение

В этой статье описываются самые основные команды, которые можно использовать при работе со сценариями LUA в Redis. Ознакомьтесь с документацией по Lua, чтобы узнать больше.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close