# Настройка Redis (Windows)

> ℹ️ Данная инструкция предназначена для установки Redis в Windows-окружении (IIS, .NET Framework). Для Docker-развёртывания используйте инструкцию [redis.md](https://help.1forma.ru/maintenance_guide/system-services/redis.md).

1\. Скачайте дистрибутив, например этот [файл](https://help.1forma.ru/files/Redis-x64-3.2.100.msi).

> ⚠️ Redis 3.2 является устаревшей версией (выпущена в 2016 году). Рекомендуется использовать Redis 7.x. Для Windows используйте Redis через Docker или [Memurai](https://www.memurai.com/) (совместимый Redis-сервер для Windows).

2\. Установите его со всеми настройками по умолчанию (по умолчанию используется порт 6379).

3\. Перейдите к файлу c:\\Program Files\\Redis\\redis.windows-service.conf и откройте его для редактирования (например, используя Notepad).

3.1. Найдите строку bind 127.0.0.1 и исправьте ее на #bind 127.0.0.1.

3.2. Найдите строку protected-mode yes и исправьте ее на protected-mode no.

> ⚠️ Отключение protected-mode открывает Redis для внешних подключений. Убедитесь, что доступ к порту Redis ограничен файрволом или настроен пароль (параметр `requirepass`).

3.3. Найдите строку save 900 1 и исправьте ее на #save 900 1.

3.4. Найдите строку save 300 10 и исправьте ее на #save 300 10.

3.5. Найдите строку save 60 10000 и исправьте ее на #save 60 10000.

3.6. Найдите строку tcp-keepalive 0 и исправьте ее на tcp-keepalive 60.

4\. Перезапустите сервер Redis. (Выполнить... -> services.msc -> Redis -> Перезапустить)

5\. На сервере приложений в web.config добавьте

```xml
<add name="RedisConnectionString" connectionString="localhost:6379,allowAdmin=true,abortConnect=false,keepAlive=60,syncTimeout=60000"/>
```

где 6379 — это адрес порта.

в секцию `<appSettings>` добавьте

```xml
<add key="isMainServer" value="true"/>
```

6\. Дополнительная [информация](https://stackexchange.github.io/StackExchange.Redis/Configuration) о настройках соединения.

7\. В папке C:\\Program Files\\Redis не должно быть файлов dump.rdb (их нужно удалить).

Теперь, когда сервер Redis запущен и настроен для сетевого доступа, установите программу-клиент для визуального доступа к содержимому сервера. В качестве клиента можно использовать [RedisReact](https://github.com/ServiceStackApps/RedisReact) или [Redis Desktop Manager](https://redisdesktop.com/).

Redis обладает развитым [языком запросов](https://redis.io/commands), вышеперечисленные программы полностью его поддерживают.

В качестве клиента для .Net приложений рекомендуется nuget-пакет [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis).
