Rumah  >  Artikel  >  pangkalan data  >  Cara nginx+redis merealisasikan perkongsian sesi

Cara nginx+redis merealisasikan perkongsian sesi

WBOY
WBOYke hadapan
2023-05-26 12:49:061518semak imbas

1. Langkah pertama ialah memasang semula Pelayan saya ialah Windows. Pada mulanya, redis tidak memerlukan kata laluan secara lalai Jika anda ingin menetapkan kata laluan, anda boleh pergi ke fail redis.windows.conf dan cari requirepass, padam tanda # di hadapan dan tetapkan kata laluan selepasnya.

Cara nginx+redis merealisasikan perkongsian sesi

2. Masukkan direktori akar redis dari cmd dan taip arahan berikut: redis-server.exeredis.windows.conf. Dengan cara ini, redis boleh dimulakan Jika permulaan berjaya, skrin berikut akan muncul. Sudah tentu, anda juga boleh mengubah suai fail conf dan menambah kata laluan. requirepass xxxxx

Cara nginx+redis merealisasikan perkongsian sesi

3. Seterusnya kita boleh melakukan beberapa kerja konfigurasi untuk mencapai cache data sesi global.

1) Mula-mula, tambah pakej jar Jika anda adalah projek maven, anda perlu menambah kod berikut pada 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>

Jika ia bukan projek maven, anda perlu untuk menambah pakej balang berikut.

Cara nginx+redis merealisasikan perkongsian sesi

2) Tulis redis.properties, kodnya adalah seperti berikut

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

Pada asasnya serupa dengan pernyataan sambungan yang kami konfigurasikan pangkalan data.

3) Tulis fail konfigurasi spring-redis.xml Fail ini mengkonfigurasi beberapa maklumat asas tentang 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) Dalam application.xml (fail konfigurasi utama spring), anda perlu menambah pengimbasan fail konfigurasi redis.properties, seperti berikut.

<!-- 读取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) Perkenalkan spring-redis.xml ke dalam fail konfigurasi utama, seperti berikut.

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

6) Dalam web.xml, tambah penapis tentang sesi Hanya dengan cara ini sesi akan dimanipulasi oleh 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>

Selepas ini, kami akan merealisasikan pengurusan sesi redis.

7) Kami boleh memasang klien redis untuk melihat data di dalamnya, dipanggil pengurus desktop redis. Seperti yang ditunjukkan di bawah, ia sangat berguna dan anda boleh melihat data dalam pangkalan data redis.

Cara nginx+redis merealisasikan perkongsian sesi

ps Apabila anda keluar semula, anda perlu menulis seperti ini untuk mengelakkan ralat. (projek ssh)

public string yipinexit(){
 iterator<string>keys=session.keyset().iterator();
 while(keys.hasnext()){
  string key=keys.next();
  session.remove(key);
 }
 return "yipinexit";
 }

Atas ialah kandungan terperinci Cara nginx+redis merealisasikan perkongsian sesi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam