Начало работы
Базовые функции
// Параметры подключения к серверу Redis
ПараметрыПодключения = Новый Структура("Адрес, Пароль",
"localhost:6379", "");
// Сохраняем значение в БД
Redis_ОсновныеФункции.УстановитьЗначение(ПараметрыПодключения,
"НаименованиеОрганизации:000000001", "ООО ""СтройОптТорг""");
// Получаем значение из БД
НаименованиеОрганизации = Redis_ОсновныеФункции.ПолучитьЗначение(ПараметрыПодключения,
"НаименованиеОрганизации:000000001");
Если НаименованиеОрганизации = Неопределено Тогда
// Получаем значение из БД 1С
...
КонецЕсли;
Работа с массивами (списками)
Сохранить и получить массив значений можно при помощи тех же функций которые описаны в разделе Базовые функции. Но в случае получения значения при помощи базовой функции происходит на одно обращение к серверу Redis больше. Этот лишний вызов расходуется на проверку типа значения. Для уменьшения количества обращений можно использовать специализированные функции для каждого из типов данных:
// Параметры подключения к серверу Redis
ПараметрыПодключения = Новый Структура("Адрес, Пароль",
"localhost:6379", "");
МассивЦветовНоменклатуры = Новый Массив;
МассивЦветовНоменклатуры.Добавть("Белый");
МассивЦветовНоменклатуры.Добавть("Черный");
МассивЦветовНоменклатуры.Добавть("Баклажан");
// Сохраняем значение в БД
Redis_ОсновныеФункции.ДобавитьЭлементыВМассив(ПараметрыПодключения,
"ДоступныеЦвета", МассивЦветовНоменклатуры);
// Получаем количество Элементов в списке Redis
КоличествоДоступныхЦветов = Redis_ОсновныеФункции.КоличествоСтрокМассива(ПараметрыПодключения,
"ДоступныеЦвета");
Сообщить(КоличествоДоступныхЦветов);
// Получаем значение из БД
// Происходит на один вызов сервера меньше чем при использовании функции ПолучитьЗначение
МассивЦветовНоменклатуры = Redis_ОсновныеФункции.ПолучитьМассив(ПараметрыПодключения,
"ДоступныеЦвета");
Несколько последовательных действий
Создание соединения через внешнюю компоненту достаточно затратное по времени действие. Так что если перед вами стоит задача выполнить несколько последовательных действий с сервером Redis, то рекмендую один раз создать соединение и в дальнейшем использовать его при вызове функций:
// Параметры подключения к серверу Redis
ПараметрыПодключения = Новый Структура("Адрес, Пароль",
"localhost:6379", "");
// Создаём соединение
Соединение = Redis_ОсновныеФункции.ПолучитьСоединение(ПараметрыПодключения);
Если Соединение = Неопределено Тогда
Возврат;
КонецЕсли;
// Сохраняем значения в цикле
Пока ВыборкаИзЗапроса.Следующий() Цикл
Redis_ОсновныеФункции.УстановитьЗначение(Соединение,
СтрШаблон("НаименованиеНоменклатуры:%1", ВыборкаИзЗапроса.Код),
ВыборкаИзЗапроса.НаименованиеНоменклатуры);
КонецЦикла;
// Закрываем соединение после выполнения всех действий
Redis_ОсновныеФункции.ЗакрытьСоединение(Соединение);
Работа с транзакцией
Транзакции в Redis это не совсем те транзакции которые есть в любой транзакционной БД. После начала транзакции сервер Redis ставит каждую последующую команду в очередь. И когда происходит фиксирование транзакции, то Redis просто выполняет все команды из этой очереди.
Важно понимать, что когда команда уже встала в очередь (то есть синтаксически верна), то, даже если она и вызовет ошибку при выполнении, остальные команды выполнятся всё равно. А вот если не встала (невалидна, вызвала ошибку при постановке в очередь), то Redis блок транзакции отклонит, даже не дождавшись завершения транзакции. И если вы попытаетесь после этого выполнить завершение транзакции, вам скажут, что транзакция была отклонена из-за предыдущих ошибок.
// Параметры подключения к серверу Redis
ПараметрыПодключения = Новый Структура("Адрес, Пароль",
"localhost:6379", "");
// Функция возвращает соединение с сервером которое следует использовать для дальнейшей
// постановки команд в очередь
Соединение = Redis_ОсновныеФункции.НачатьТранзакциюRedis();
// Сохраняем значения в цикле
Пока ВыборкаИзЗапроса.Следующий() Цикл
Redis_ОсновныеФункции.УстановитьЗначение(Соединение,
СтрШаблон("НаименованиеНоменклатуры:%1", ВыборкаИзЗапроса.Код),
ВыборкаИзЗапроса.НаименованиеНоменклатуры);
КонецЦикла;
// Выполняем все команды которые были добавлены в очередь
Redis_ОсновныеФункции.ЗафиксироватьТранзакциюRedis(Соединение);
Работа с временем жизни
Сервер Redis может самостоятельно удалять из своей базы записи с истекшим временем жизни. Значение срока через который запись будет автоматически удалена задаётся в секундах:
// Параметры подключения к серверу Redis
ПараметрыПодключения = Новый Структура("Адрес, Пароль",
"localhost:6379", "");
// Создаём соединение
Соединение = Redis_ОсновныеФункции.ПолучитьСоединение(ПараметрыПодключения);
Если Соединение = Неопределено Тогда
Возврат;
КонецЕсли;
// Сохраняем значение в БД
Redis_ОсновныеФункции.УстановитьЗначение(Соединение,
"НаименованиеОрганизации:000000001", "ООО ""СтройОптТорг""");
// Устанавливаем время жазни записи 1 час
Redis_ОсновныеФункции.УстановитьВремяЖизни(Соединение,
"НаименованиеОрганизации:000000001", 60 * 60);
// Получаем оставшееся время жазни для записи
ОставшеесяВремя = Redis_ОсновныеФункции.ПолучитьВремяЖизни(Соединение,
"НаименованиеОрганизации:000000001");
Сообщить(ОставшеесяВремя);
// Закрываем соединение после выполнения всех действий
Redis_ОсновныеФункции.ЗакрытьСоединение(Соединение);