Maison > base de données > Redis > Comment nginx+redis réalise le partage de session

Comment nginx+redis réalise le partage de session

WBOY
Libérer: 2023-05-26 12:49:06
avant
1582 Les gens l'ont consulté

1. La première étape consiste à installer redis. Mon serveur est Windows. J'ai téléchargé la version sans installation. Le répertoire est le suivant. Au début, redis ne nécessite pas de mot de passe par défaut. Si vous souhaitez définir un mot de passe, vous pouvez accéder au fichier redis.windows.conf et rechercher requirepass, supprimer le signe # devant et définir le mot de passe après.

Comment nginx+redis réalise le partage de session

2. Entrez le répertoire racine de redis depuis cmd et tapez la commande suivante : redis-server.exeredis.windows.conf. De cette façon, Redis peut être démarré si le démarrage réussit, l'écran suivant apparaîtra. Bien entendu, vous pouvez également modifier le fichier de configuration et ajouter un mot de passe. requirepass xxxxx

Comment nginx+redis réalise le partage de session

3. Ensuite, nous pouvons effectuer un travail de configuration pour réaliser une mise en cache globale des données de session.

1) Tout d'abord, ajoutez le package jar. Si vous êtes un projet maven, vous devez ajouter le code suivant à pom.xml

<!-- redis -->
 <dependency>
  <groupid>org.springframework.session</groupid>
  <artifactid>spring-session-data-redis</artifactid>
  <version>1.3.1.release</version>
  <type>pom</type>
 </dependency>
Copier après la connexion

S'il ne s'agit pas d'un projet maven, vous devez ajouter les packages jar suivants.

Comment nginx+redis réalise le partage de session

2) Écrivez redis.properties, le code est le suivant

redis_isopen:yes
#主机地址
redis_hostname=xxx.xxx.xxx.xxx
#端口
redis_port=6379
#密码
redis_password=xxxxxxxx
#连接超时时间
redis_timeout=200000
redis_maxidle:300
redis_maxactive:600
redis_maxwait:100000
redis_testonborrow:true
Copier après la connexion

Fondamentalement similaire à l'instruction de connexion que nous configurons la base de données.

3) Écrivez le fichier de configuration spring-redis.xml Ce fichier configure quelques informations de base sur redis.

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
 xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd ">
 <!-- session设置 maxinactiveintervalinseconds为session的失效时间,单位为秒-->
 <bean
 class="org.springframework.session.data.redis.config.annotation.web.http.redishttpsessionconfiguration">
 <property name="maxinactiveintervalinseconds" value="3600"></property>
 </bean>
 <!-- redis连接池 -->
 <bean id="poolconfig" class="redis.clients.jedis.jedispoolconfig">
 <property name="maxidle" value="${redis_maxidle}" />
 <property name="testonborrow" value="${redis_testonborrow}" />
 </bean>
 <!-- redis连接工厂 -->
 <bean id="connectionfactory"
 class="org.springframework.data.redis.connection.jedis.jedisconnectionfactory">
 <property name="hostname" value="${redis_hostname}" />
 <property name="port" value="${redis_port}" />
 <property name="password" value="${redis_password}" />
 <property name="timeout" value="${redis_timeout}" />
 <property name="poolconfig" ref="poolconfig"></property>
 </bean>
</beans>
Copier après la connexion

4) Dans application.xml (le fichier de configuration principal de Spring), vous devez ajouter l'analyse du fichier de configuration redis.properties, comme suit.

<!-- 读取redis参数配置 -->
 <bean id="propertyconfigurer"
 class="org.springframework.beans.factory.config.propertyplaceholderconfigurer">
 <property name="locations">
  <list>
  <value>/web-inf/classes/redis.properties</value>
  </list>
 </property>
 </bean>
Copier après la connexion

5) Introduisez spring-redis.xml dans le fichier de configuration principal, comme suit.

<import resource="spring-redis.xml" />
Copier après la connexion

6) Dans web.xml, ajoutez un filtre sur la session Ce n'est qu'ainsi que la session sera manipulée par redis.

<filter>
 <filter-name>springsessionrepositoryfilter</filter-name>
 <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>springsessionrepositoryfilter</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
Copier après la connexion

Après cela, nous réaliserons la gestion des sessions de redis.

7) Nous pouvons installer un client Redis pour afficher les données à l'intérieur, appelé Redis Desktop Manager. Comme indiqué ci-dessous, c'est très utile et vous pouvez voir les données dans la base de données Redis.

Comment nginx+redis réalise le partage de session

ps. Lorsque vous quittez à nouveau, vous devez écrire comme ça pour éviter de faire des erreurs. (projet ssh)

public string yipinexit(){
 iterator<string>keys=session.keyset().iterator();
 while(keys.hasnext()){
  string key=keys.next();
  session.remove(key);
 }
 return "yipinexit";
 }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal