diff --git a/docs/plugins/radix.md b/docs/plugins/radix.md index 75258edfa452e9b4d8f63a2128eabccefe4379f9..8557f6194d1b4f33ef12b7861e7a894d487635f2 100644 --- a/docs/plugins/radix.md +++ b/docs/plugins/radix.md @@ -75,38 +75,279 @@ redis-cli -p 7379 ## Поддерживаемые команды {: #supported_commands } -ПолноÑтью поддерживаемые команды: +### Управление клаÑтером {: #cluster_management } - - cluster management: - - ping - - connection management: - - select - - generic: - - del - - exists - - expire - - keys - - persist - - scan - - ttl - - type - - hash: - - hdel - - hexists - - hget - - hgetall - - hincrby - - hkeys - - hlen - - hscan - - hset - - string - - get - - set +#### ping + +```sql +PING [message] +``` + +Возвращает `PONG`, еÑли аргумент не указан, в противном Ñлучае +возвращает копию аргумента в виде маÑÑива. Ðта команда полезна длÑ: + +- проверки того, живо ли еще Ñоединение +- проверки ÑпоÑобноÑти Ñервера обÑлуживать данные — ошибка возвращаетÑÑ, + еÑли Ñто не так (например, при загрузке из поÑтоÑнного хранилища или + обращении к уÑтаревшей реплике) +- Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ¸ + +### Управление ÑоединениÑми {: #connection_management } + +#### select + +```sql +SELECT index +``` + +Получение логичеÑкой базы данных Redis Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ нулевым чиÑловым +индекÑом. Ðовые ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð²Ñегда иÑпользуют базу данных 0. + +### Общие команды {: #general } + +#### del + +```sql +DEL key [key ...] +``` + +УдалÑет указанные ключи. ÐеÑущеÑтвующие ключи игнорируютÑÑ. + +#### exists + +```sql +EXISTS key [key ...] +``` + +ПроверÑет, ÑущеÑтвует ли указанный ключ `key` и возвращает чиÑло Ñовпадений. +Ðапример, Ð·Ð°Ð¿Ñ€Ð¾Ñ `EXISTS somekey somekey` вернет `2`. + +#### expire + +```sql +EXPIRE key seconds [NX | XX | GT | LT] +``` + +УÑтанавливает Ñрок жизни (таймаут) Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° `key`. По иÑтечении таймаута ключ +будет автоматичеÑки удален. Ð’ терминологии Redis ключ Ñ ÑƒÑтановленным +тайм-аутом чаÑто называют _волатильным_. + +Тайм-аут будет Ñброшен только командами, которые удалÑÑŽÑ‚ или +перезапиÑывают Ñодержимое ключа, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ DEL, SET и GET/SET. Ðто +означает, что вÑе операции, которые концептуально изменÑÑŽÑ‚ значение, +хранÑщееÑÑ Ð² ключе, не заменÑÑ ÐµÐ³Ð¾ новым, оÑтавлÑÑŽÑ‚ таймаут нетронутым. + +#### keys + +```sql +KEYS pattern +``` + +Возвращает вÑе ключи, ÑоответÑтвующие шаблону. + +ПоддерживаютÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ‹ в Ñтиле _glob_: + +- `h?llo` ÑоответÑтвует hello, hallo и hxllo +- `h*llo` ÑоответÑтвует hllo и heeeello +- `h[ae]llo` ÑоответÑтвует hello и hallo, но не hillo +- `h[^e]llo` ÑоответÑтвует hallo, hbllo, ... но не hello +- `h[a-b]llo` ÑоответÑтвует hallo и hbllo + +#### persist + +```sql +PERSIST key +``` + +УдалÑет ÑущеÑтвующий таймаут Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° `key`, Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰Ð°Ñ ÐµÐ³Ð¾ из непоÑтоÑнного +(ключ Ñ ÑƒÑтановленным Ñроком дейÑтвиÑ) в поÑтоÑнный (ключ, Ñрок дейÑÑ‚Ð²Ð¸Ñ +которого никогда не иÑтечет, поÑкольку таймаут Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ не уÑтановлен). + +#### scan + +```sql +SCAN cursor [MATCH pattern] [COUNT count] [TYPE type] +``` + +Команда `SCAN` иÑпользуетÑÑ Ð´Ð»Ñ Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð½Ð¾Ð³Ð¾ итерационного проÑмотра +коллекции Ñлементов в выбранной в данный момент базе данных Redis. + +#### ttl + +```sql +TTL key +``` + +Возвращает оÑтавшееÑÑ Ð²Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸ ключа `key`, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ уÑтановлен +таймаут. Ðта возможноÑÑ‚ÑŒ интроÑпекции позволÑет клиенту Redis проверить, +Ñколько Ñекунд данный ключ будет оÑтаватьÑÑ Ñ‡Ð°Ñтью набора данных. + +Команда возвращает `-2`, еÑли ключ не ÑущеÑтвует. + +Команда возвращает `-1`, еÑли ключ ÑущеÑтвует, но не имеет ÑвÑзанного Ñ +ним иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ Ñрока дейÑтвиÑ. + +#### type + +```sql +TYPE key +``` + +Возвращает Ñтроковое предÑтавление типа значениÑ, хранÑщегоÑÑ Ð¿Ð¾ адреÑу +ключа `key`. Могут быть возвращены Ñледующие типы: + +- `string` +- `list` +- `set` +- `zset` +- `hash` +- `stream` + +### Ð¥Ñш-команды {: #hash } + +#### hdel +```sql +HDEL key field [field ...] +``` + +УдалÑет указанные Ð¿Ð¾Ð»Ñ Ð¸Ð· Ñ…Ñша, хранÑщегоÑÑ Ð¿Ð¾ адреÑу ключа `key`. +Указанные полÑ, которые не ÑущеÑтвуют в Ñтом Ñ…Ñше, игнорируютÑÑ. УдалÑет +Ñ…Ñш, еÑли в нем не оÑталоÑÑŒ полей. ЕÑли `key` не ÑущеÑтвует, он +раÑÑматриваетÑÑ ÐºÐ°Ðº пуÑтой Ñ…Ñш, и Ñта команда возвращает `0`. + +#### hexists + +```sql +HEXISTS key field +``` + +Возвращает, ÑвлÑетÑÑ Ð»Ð¸ поле `field` ÑущеÑтвующим полем в Ñ…Ñше, хранÑщемÑÑ Ð¿Ð¾ +адреÑу ключа `key`. + + +#### hget + +```sql +HGET key field +``` + +Возвращает значение, ÑвÑзанное Ñ Ð¿Ð¾Ð»ÐµÐ¼ `field` в Ñ…Ñше, хранÑщемÑÑ Ð¿Ð¾ +адреÑу ключа `key`. + +#### hgetall + +```sql +HGETALL key +``` + +Возвращает вÑе Ð¿Ð¾Ð»Ñ Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ…Ñша, хранÑщегоÑÑ Ð¿Ð¾ адреÑу ключа `key`. Ð’ +возвращаемом значении за именем каждого Ð¿Ð¾Ð»Ñ Ñледует его значение, +поÑтому длина ответа будет в два раза больше размера Ñ…Ñша. + +#### hincrby + +```sql +HINCRBY key field increment +``` + +Увеличивает чиÑло, хранÑщееÑÑ Ð² поле `field`, в Ñ…Ñше, хранÑщемÑÑ Ð² ключе +`key`, на инкремент. ЕÑли ключ не ÑущеÑтвует, ÑоздаетÑÑ Ð½Ð¾Ð²Ñ‹Ð¹ ключ, +Ñодержащий Ñ…Ñш. ЕÑли поле не ÑущеÑтвует, то перед выполнением операции +его значение уÑтанавливаетÑÑ Ð² `0`. + +Диапазон значений, поддерживаемых `HINCRBY`, ограничен 64-битными +знаковыми целыми чиÑлами. + +#### hkeys + +```sql +HKEYS key +``` + +Возвращает вÑе имена полей в Ñ…Ñше, хранÑщемÑÑ Ð¿Ð¾ адреÑу ключа `key`. + +#### hlen + +```sql +HLEN key +``` + +Возвращает количеÑтво полей, ÑодержащихÑÑ Ð² Ñ…Ñше, хранÑщемÑÑ Ð¿Ð¾ адреÑу +ключа `key`. + +#### hscan + +```sql +HSCAN key cursor [MATCH pattern] [COUNT count] [NOVALUES] +``` + +Работает подобно [SCAN](#scan), но Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼ отличием: `HSCAN` +выполнÑет итерацию полей типа Hash и ÑвÑзанных Ñ Ð½Ð¸Ð¼Ð¸ значений. + +#### hset + +```sql +HSET key field value [field value ...] +``` + +УÑтанавливает указанные Ð¿Ð¾Ð»Ñ Ð² ÑоответÑтвующие им Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² Ñ…Ñше, +хранÑщемÑÑ Ð¿Ð¾ адреÑу ключа `key`. + +Ðта команда перезапиÑывает Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… полей, которые ÑущеÑтвуют +в Ñ…Ñше. ЕÑли ключ не ÑущеÑтвует, ÑоздаетÑÑ Ð½Ð¾Ð²Ñ‹Ð¹ ключ, Ñодержащий Ñ…Ñш. + +### Команды Ð´Ð»Ñ Ñтрок {: #string } + +#### get + +```sql +GET key +``` + +Получает значение ключа `key`. ЕÑли ключ не ÑущеÑтвует, возвращаетÑÑ +Ñпециальное значение `nil`. ЕÑли значение, хранÑщееÑÑ Ð² ключе, не +ÑвлÑетÑÑ Ñтрокой, возвращаетÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°, поÑкольку `GET` работает только +Ñо Ñтроковыми значениÑми. + +#### set + +```sql +SET key value [NX | XX] [GET] [EX seconds | PX milliseconds | + EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL] +``` + +СохранÑет Ñтроковое значение в ключе. ЕÑли ключ уже Ñодержит значение, +оно будет перезапиÑано, незавиÑимо от его типа. Любое предыдущее +ограничение таймаута, ÑвÑзанное Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼, отменÑетÑÑ Ð¿Ñ€Ð¸ уÑпешном +выполнении операции `SET`. + +Параметры: + +- `EX` — уÑтановка указанного времени иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð² + Ñекундах (целое положительное чиÑло) +- `PX` — уÑтановка указанного времени иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ Ð² миллиÑекундах (целое + положительное чиÑло) +- `EXAT` — уÑтановка указанного времени Unix, в которое иÑтекает Ñрок + дейÑÑ‚Ð²Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°, в Ñекундах (целое положительное чиÑло) +- `PXAT` — уÑтановка указанного времени Unix, по иÑтечении которого Ñрок + дейÑÑ‚Ð²Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° иÑтечет, в миллиÑекундах (целое положительное чиÑло) +- `NX` — уÑтановка значение ключа только в том Ñлучае, еÑли он еще + не ÑущеÑтвует +- `XX` — уÑтановка значение ключа только в том Ñлучае, еÑли он уже + ÑущеÑтвует +- `KEEPTTL` — Ñохранить Ð²Ñ€ÐµÐ¼Ñ Ð¶Ð¸Ð·Ð½Ð¸, ÑвÑзанное Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ +- `GET` — возвращает Ñтарую Ñтроку, хранÑщуюÑÑ Ð¿Ð¾ адреÑу ключа, или + `nil`, еÑли ключ не ÑущеÑтвовал. ВозвращаетÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° и `SET` + прерываетÑÑ, еÑли значение, хранÑщееÑÑ Ð¿Ð¾ адреÑу ключа `key`, не + ÑвлÑетÑÑ Ñтрокой. + +<!-- ЧаÑтично поддерживаемые команды: - cluster management: - auth (no-op, always returns ok) - scripting: - eval (can't call redis functions at the moment) + + -->