<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
redis: host: 127.0.0.1 port: 6379 database: 0 password: # 连接超时时间 timeout: 10s
/** * 防止表单重复提交注解 */ @Target(ElementType.METHOD) // 注解的作用目标为方法 @Retention(RetentionPolicy.RUNTIME) // 注解的保留期限为运行时 public @interface PreventDuplicateSubmission { /** * 时间(s) */ int time() default 3; }
Dalam kod di atas, kami menggunakan StringRedisTemplate
yang disediakan oleh Spring Boot untuk menyambung ke Redis Suntikan objek terus melalui anotasi @Autowired. Dalam anotasi @Around, kami menggunakan kaedah stringRedisTemplate.hasKey() untuk menyemak sama ada permintaan itu sudah wujud dalam Redis Jika ia wujud, pengecualian akan dilemparkan jika ia tidak wujud, stringRedisTemplate.opsForValue().set() kaedah digunakan untuk menetapkan permintaan. Permintaan disimpan dalam Redis dan masa tamat tempoh ditetapkan kepada 3 saat.
Anda perlu memberi perhatian kepada perkara berikut apabila menggunakan permintaan storan Redis:
Redis perlu digunakan secara berasingan, jangan gunakan Redis dan aplikasi dalam yang sama pada mesin.
Prestasi Redis mungkin merosot berbanding kaedah storan memori, dan ia perlu diuji dan dioptimumkan berdasarkan situasi sebenar.
Jika pengecualian berlaku dalam Redis, ia mungkin menjejaskan operasi biasa aplikasi dan mekanisme toleransi kesalahan yang sepadan perlu ditambah.
Permintaan storan Redis perlu mengambil kira isu konkurensi, yang boleh diselesaikan menggunakan kunci yang diedarkan Redis.
Jika aplikasi memerlukan operasi Redis yang kerap, ia mungkin menyebabkan prestasi Redis menurun Oleh itu, anda perlu memberi perhatian untuk mengoptimumkan konfigurasi dan penggunaan Redis, seperti menggunakan teknologi seperti Redis Pipeline. Meningkatkan prestasi Redis.
Atas ialah kandungan terperinci Cara SpringBoot menggunakan AOP+Redis untuk menghalang penyerahan borang berulang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!