Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan but Spring untuk membina cache sesi teragih dengan cepat berdasarkan Redis

Cara menggunakan but Spring untuk membina cache sesi teragih dengan cepat berdasarkan Redis

WBOY
WBOYke hadapan
2023-05-27 20:49:27883semak imbas

Gunakan but Spring untuk membina penyelesaian cache sesi teragih dengan cepat berdasarkan Redis

Dalam aplikasi web berskala besar, pengurusan sesi adalah sangat penting, yang tidak boleh dipenuhi oleh storan mesin tunggal.

Biasanya yang berikut adalah Satu kaedah:

  1. Teruskan sesi ke dalam pangkalan data Tetapi kelemahannya ialah kos membaca dan menulis terlalu tinggi.

  2. <.>
  3. Nyahsesi, seperti Maklumat disimpan dalam kuki Tetapi kelemahannya ialah saiznya terhad dan tidak selamat

3 pangkalan data, seperti Redis.

Langkah pertama: Sediakan persekitaran pembangunan Spring Boot

Tambah maven core dependency spring-session-data-redis

<!--基于redis的分布式session存储-->
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>
Konfigurasikan redis sifat sambungan dalam fail application.properties

######   Redis config start ######
spring.redis.database=0
spring.redis.host=192.168.41.60
spring.redis.port=6379
spring.redis.password=
spring.redis.pool.max-active=20
spring.redis.pool.max-wait=-1
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.timeout=0
######   Redis config end ######
Langkah 2: Dayakan anotasi @EnableRedisHttpSession

@Configuration
@EnableRedisHttpSession(redisNamespace = "mysession",maxInactiveIntervalInSeconds = 60*60*24)
public class SessionConfig

Kod sumber anotasi @EnableRedisHttpSession adalah seperti berikut parameter boleh dikonfigurasikan:

  • maxInactiveIntervalInSeconds: Masa tamat tempoh data dalam sesi (bukan masa tamat sesi dalam redis)

  • Dalam konfigurasi saya, saya menetapkan ruang nama bernama "mysession" , digunakan untuk mengenal pasti aplikasi semasa

  • redisFlushMode: cara redis menyimpan sesi, lalai ON_SAVE

    mempunyai dua cara:
    SERTA MERTA: Setelah sesi dibuat Hanya simpan dengan segera ON_SAVE: Ia tidak akan disimpan semasa membuat sesi, tetapi ia akan disimpan apabila menambah data pada. sesi.

@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({ java.lang.annotation.ElementType.TYPE })
@Documented
@Import(RedisHttpSessionConfiguration.class)
@Configuration
public @interface EnableRedisHttpSession
    int maxInactiveIntervalInSeconds() default 1800;

    String redisNamespace() default "";

    RedisFlushMode redisFlushMode() default
Langkah 3: Uji

Tulis pengawal

@RestController
public class HelloController

    @RequestMapping("/hello/{username}")
    public String hello(HttpSession session, @PathVariable(value = "username") String username) {
        session.setAttribute("username", username);
        return "保存session到Redis成功";
    }

    @RequestMapping("/getName")
    public String getUsername(HttpSession session) {
        String username = (String) session.getAttribute("username");
        return
Apabila penyemak imbas mengakses pautan http://localhost:8080/hello /admin, kaedah

hello akan menerima pautan yang diluluskan oleh parameter penyemak imbas, dan menyimpannya dalam sesi, dan kemudian menyimpan sesi dalam Redis

Dengan melihat maklumat dalam redis, anda boleh melihat maklumat berikut:

Sesi musim bunga: ditambah secara automatik, kami Mysession ruang nama yang dicipta berada di bawah direktori lalai ini

Seterusnya, kami melawati http://localhost:8080/getName, dan anda boleh melihat bahawa penyemak imbas akan memaparkan pentadbir yang baru kami simpan dalam sesi

Atas ialah kandungan terperinci Cara menggunakan but Spring untuk membina cache sesi teragih dengan cepat berdasarkan Redis. 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
Artikel sebelumnya:Contoh analisis Redis+GetshellArtikel seterusnya:Contoh analisis Redis+Getshell