Rumah > pangkalan data > Redis > teks badan

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

WBOY
Lepaskan: 2023-05-27 20:49:27
ke hadapan
925 orang telah melayarinya

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>
Salin selepas log masuk
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 ######
Salin selepas log masuk
Langkah 2: Dayakan anotasi @EnableRedisHttpSession

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

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
Salin selepas log masuk
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
Salin selepas log masuk
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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!