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)
+
+ -->