บทความนี้แนะนำวิธีการและขั้นตอนการใช้ Redis Cache ในโครงการ Springboot ฉันจะแบ่งปันกับคุณ รายละเอียดมีดังนี้:
ข้อมูลฤดูใบไม้ผลิ Redis ห่อหุ้มการดำเนินงานที่หลากหลายของไคลเอนต์ Redis เพื่อให้เราใช้งานได้ง่ายขึ้น
- เมื่อ Redis ถูกใช้เป็นฐานข้อมูลหรือคิวข้อความเรามักจะใช้ Redistemplate เพื่อใช้งาน
- เมื่อ Redis ถูกใช้เป็นแคชเราสามารถใช้เป็นการนำแคชสปริงไปใช้งานโดยตรงโดยใช้มันผ่านคำอธิบายประกอบโดยตรง
1. ภาพรวม
การใช้ Redis Cache อย่างมีประสิทธิภาพในแอปพลิเคชันสามารถปรับปรุงประสิทธิภาพของระบบได้ดีโดยเฉพาะอย่างยิ่งสำหรับการดำเนินการแบบสอบถามซึ่งสามารถลดความดันฐานข้อมูลได้อย่างมีประสิทธิภาพ
สำหรับรหัสเฉพาะโปรดดูโครงการตัวอย่างนี้
2. เพิ่มการอ้างอิง
在build.gradle加入
Compile ('org.springframework.boot: Spring-Boot-Starter-Data-Redis')SpringBoot会自动引入redis相关的jar包。加入该引用后,需要在本地安装redis并启动,否则程序启动时会报错。
3. เปิดใช้งานแคชผ่านคำอธิบายประกอบ
มันง่ายมากที่จะเปิดใช้งาน Redis ใน Springboot คุณจะต้องเพิ่มคำอธิบายประกอบ @EnableCaching ในคลาส Main Application จากนั้นเพิ่มคำอธิบายประกอบ @Cacheable ในวิธีการสืบค้นที่ต้องเปิดใช้งานแคช
@springbootapplication@enablecachingpublic คลาสการสาธิตการใช้ Commandlinerunner {...อินเทอร์เฟซแบบสอบถาม:
การทดสอบส่วนต่อประสานสาธารณะขยาย jparepository <ทดสอบ, จำนวนเต็ม> {@caceable (value = "testCache") การทดสอบสาธารณะ findone (INTEGER ID);}คลาสเอนทิตีจำเป็นต้องใช้อินเทอร์เฟซแบบ serializable มิฉะนั้นโปรแกรมจะรายงานข้อผิดพลาดเนื่องจากวัตถุ Java ไม่สามารถทำให้เป็นอนุกรมใน Redis ได้ Redis ใน Springboot ใช้ defaultSerializer โดยค่าเริ่มต้นซึ่งใช้วิธีการทำให้เป็นอนุกรมของ JDK
มีวิธีการทำให้เป็นอนุกรมทั้งหมดต่อไปนี้ สำหรับสถานการณ์การใช้งานเฉพาะโปรดดูเอกสารอย่างเป็นทางการ
1. Genericjackson2jsonredisserializer
2. generictostostringserializer
3. Jackson2Jsonredisserializer
4. Jacksonjsonredisserializer
5. JdkserializationRisserializer
6. oxmserializer
7. Stringredisserializer
ณ จุดนี้โปรแกรมของเรามีความสามารถในการสอบถามข้อมูลจากแคช Redis หากคุณไม่สนใจความสวยงามของคีย์ที่เก็บไว้ใน Redis งานจะจบลง
4.美观的KEY
หลังจากดำเนินการโปรแกรมของเราแล้วให้เรียกใช้คำสั่งปุ่ม * ใน Redis-Cli และคุณจะพบว่าค่าของคีย์นั้นเป็นสิ่งที่คล้ายกับรหัสที่อ่านไม่ออก:
"TestCache: /xac/xed/x00/x05sr/x00/x11java.lang.integer/x12/xe2/xa0/xa4/xf7/x81/x878/x02/x00/x01i/x0 0/X05VALUEEXR/X00/X10JAVA.LANG.NUMBER/X86/XAC/X95/X1D/X0B/X94/XE0/X8B/X02/X00/X00XP/X00/X00/X00/X01 "
ค่าคีย์ในเรื่องนี้อาจไม่สามารถยอมรับได้กับบุคลากรการดำเนินงานและการบำรุงรักษาของ Redis เราจำเป็นต้องหาวิธีที่จะทำให้คุณค่าสำคัญดูดีขึ้นอย่างน้อยก็เพื่อให้ผู้คนเข้าใจ
เหตุผลสำหรับค่าคีย์ข้างต้นคือคลาส SimpleKey ถูกใช้โดยค่าเริ่มต้นในฤดูใบไม้ผลิเพื่อสร้างคีย์ REDIS
การแก้ปัญหาก็ง่ายมาก เพิ่มการกำหนดค่าแคชและระบุว่า REDIS สร้างคีย์ได้อย่างไร:
@ConfigurationPublic คลาส cacheconfig ขยาย CachingConfigurersupport {@autowired Redistemplate ส่วนตัว redistemplate; @Bean Public CacheManager CacheManager () {redistemplate.setKeyserializer (ใหม่ GenerictOstringserializer <Object> (Object.class)); REDISCACHEMANAGER CACHEMANAGER = ใหม่ REDISCACHEMANAGER (REDISTEMPLATE); CacheManager.SetDefaultExpiration (3600); CacheManager.SetUSEPREFIX (จริง); CacheManager.SetCachePreFix (ใหม่ rediscachepreFix () {ส่วนตัวสุดท้าย redisserializer <String> serializer = ใหม่ stringredisserializer (); ตัวคั่นสตริงสุดท้ายส่วนตัว = ":" ไบต์สาธารณะ [] คำนำหน้า (cachename) {กลับมานี้ กลับ cachemanager; -ใน
การคัดลอกรหัสมีดังนี้:
REDISTEMPLATE.SetKeySerializer (ใหม่ generictOstringserializer <Ojrop> (Object.class));
บรรทัดของรหัสนี้ระบุวิธีการสร้างของค่าคีย์ใน Redis The serialization method of GenericToStringSerializer will convert the java object into a string and store it in redis.
5. สรุป
การเปิดใช้งาน Redis Cache ใน Springboot นั้นง่ายมากคุณต้องเพิ่มคำอธิบายประกอบสองสามรายการเท่านั้น ในเวลาเดียวกันเราสามารถเพิ่มการกำหนดค่าแคชเพื่อให้ค่าคีย์ที่เก็บไว้ใน Redis มีความสามารถในการอ่านได้ดีแทนที่จะเป็นข้อมูลที่อ่านไม่ออก
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น