Rumah >pangkalan data >Redis >Cara menggunakan but Spring untuk membina 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:
Teruskan sesi ke dalam pangkalan data Tetapi kelemahannya ialah kos membaca dan menulis terlalu tinggi.
<!--基于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:
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() defaultLangkah 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"); returnApabila 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 RedisDengan 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!