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

Comment nginx+redis réalise le partage de session

WBOY
WBOYavant
2023-05-26 12:49:061516parcourir

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>

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

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>

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>

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

<import resource="spring-redis.xml" />

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>

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";
 }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer