1: Введение в сессию
Что такое сессия? Проще говоря, это номер, который сервер присваивает клиенту. Когда веб-сервер запущен, несколько пользователей могут просматривать сайты, работающие на этом сервере. Когда каждый пользователь впервые подключается к веб-серверу, он устанавливает сессию с сервером, и сервер автоматически присваивает ему SessionID для идентификации уникальной личности пользователя. Этот SessionID — это строка из 24 символов, случайно генерируемая веб-сервером, и мы увидим её в действии в эксперименте ниже.
2: Централизованный режим и конфигурация сессии в Asp.Net
(1): InProc, Session хранится в процессе, который также является методом хранения в ASP.Net и является значением по умолчанию (2): StateServer, Session хранится в отдельном государственном сервисе, то есть ASP.NET State Service (3): SQLServer, Session хранится в базе данных SQL Server (4): Custom — пользовательский метод сохранения, который можно сохранять в Oracle, SQLServer, MongoDb и Redis В этой статье главным образом говорится о хранении и совместном использовании Sessions в Redis
3: Настройка провайдера сессий на базе Redis
(1) Внести следующие изменения в HomeControllers сайтов A и B, как показано на рисунке ниже, и добавить функции создания и получения сессий
Соответствующие представления View
(2) Конфигурация RedisProvider: Microsoft.Web.RedisSessionStateProvider Установите Microsoft.Web.RedisSessionStateProvider с помощью Nuget, как показано на следующем изображении:
Измените профиль:
4. Тест сессии балансировки нагрузки
(1) Введите в браузере:http://192.168.152.128/ Создать сессию
(2) Введите в браузер:http://192.168.152.128/home/getsessionvalue, Откройте две вкладки, обязательно откройте их в одном окне браузера, иначе SessionID точно будет отличаться
На рисунке видно, что сайт А разделяет сессии, созданные сайтом Б. Вы также можете увидеть только что созданную сессию на redis, как показано на рисунке ниже
|