Поиск по сайту:
Я не хочу иметь точку зрения. Я хочу иметь зрение (М.И. Цветаева).

LUA-скрипты Redis

04.04.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.

 

Читать  Может ли иметь таблица пространство WASTED/FRAGMENTED без удаления данных (DELETE) в MySQL?

Мы можем получить значение ключа с помощью команды 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"

 

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

127.0.0.1:6379> SCRIPT FLUSH
OK

 

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

 

Заключение

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

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 1,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Вслед за своими новейшими игровыми дисплеями Dell представила новые мониторы 4K IPS…

Спасибо!

Теперь редакторы в курсе.