# redisexp

Redis-клиент, экспортирующий теги на redis-сервер.

На сервере данные хранятся в виде строковых пар ключ-значение, где ключ - это имя тега, а значение - совокупность типа, статуса и значения тега, разделенных пробелами:

    <type><status><value>

где:

    type - тип данных (первый символ строки):
      B - BOOLEAN
      I - INTEGER
      L - LONG
      D - DOUBLE
      S - STRING

    status - статус тега (второй символ строки):
      пробел - GOOD
      !      - BAD

    value - значение тега (остальная часть строки)

## Параметры

    plugin.redisexp:
      module.redis:
        clientName:   my-jrobo-redis
        filter:       .*
        host:         localhost
        port:         6379
        dbnum:        0
        timeoutConn:  10
        timeoutCmd:   60
        ssl:          off
        noScanDelete: off
        readonly:     off

Параметр | Умолчание | Описание
--- | --- | ---
host | `localhost` | Имя или адрес redis-сервера
port | `6379` | Номер tcp порта redis-сервер
descr | `jrobo-имя модуля` | Короткое описание клиента, которое можно будет увидеть на сервере при просмотре списка подключенных клиентов
filter | `.*` | Regex-фильтр тегов для экспорта
dbnum | `0` | Номер базы данных на сервере
timeoutConn_s | `10` | Тайм-аут подключения к серверу, с
timeoutCmd_s | `60` | Тайм-аут выполнения команд, с
username | `` | Имя пользователя, при использовании аутентификации
password | `` | Пароль, при использовании аутентификации
ssl | `off` | Использование шифрования трафика
auth | `off` | Использование аутентификации. Если аутентификация включена на сервере, то на клиенте также необходимо включить
readonly | `off` | Запрет внешней записи в теги

## Внешние команды

При подключении клиент подписывается на pub/sub каналы, через которые передаются внешние команды.

#### write - Запись значения в тег

    PUBLISH write "<tagname> <value>"

#### reset - Переустановить значение тега

Для одного тега:

    PUBLISH reset "<tagname>"

Для всех тегов:

    PUBLISH reset ALL

## Теги

Имя тега | Тип | Описание
--- | --- | ---
client.connected | `boolean` | Состояние подключения к серверу
client.disconnect.cnt | `int` | Количество разрывов соединения
client.last.error | `string` | Описание последней произошедшей ошибки соединения