คำนำ
นักเรียนที่ทำงานในระบบซอฟต์แวร์ขนาดใหญ่รู้ว่าเมื่อข้อมูลระบบมีขนาดใหญ่ขึ้นและซับซ้อนมากขึ้นปัญหาที่มาพร้อมกับประสิทธิภาพของระบบที่แย่ลงโดยเฉพาะอย่างยิ่งการสูญเสียประสิทธิภาพที่เกิดจากการดำเนินการฐานข้อมูลบ่อยครั้งนั้นร้ายแรงกว่า Bigwigs จำนวนมากได้เสนอโซลูชั่นมากมายและพัฒนาเฟรมเวิร์กมากมายเพื่อเพิ่มประสิทธิภาพการสูญเสียประสิทธิภาพที่เกิดจากฐานข้อมูลการทำงานบ่อยครั้ง ในหมู่พวกเขาทั้งสองเซิร์ฟเวอร์แคชที่โดดเด่นเป็นพิเศษคือ memcached และ redis วันนี้เราจะไม่พูดถึง Memcached และ Redis เอง ที่นี่เราจะแนะนำเนื้อหาที่เกี่ยวข้องของการรวมสปริงและ Redis เป็นหลัก ฉันจะไม่พูดด้านล่างมากนักลองมาดูการแนะนำรายละเอียดด้วยกัน
วิธีนี้มีดังนี้
ขั้นตอนแรกคือการเพิ่มรหัส POM ของ REDIS ลงในโครงการ:
<Ederency> <roupId> redis.Clients </groupId> <ratifactid> Jedis </artifactId> <version> 2.6.0 </เวอร์ชัน> </predency>
ขั้นตอนที่สองคือการโหลดไฟล์การกำหนดค่า REDIS ในฤดูใบไม้ผลิ: ApplicationContext-Redis.xml เนื้อหามีดังนี้
<bean id = "poolconfig"> <property name = "maxtotal" value = "$ {redis.maxtotal}" /> </ebean> <bean> <constructor-Arg index = "0" ref = "poolconfig" /> value = "$ {redis.node1.host}"/> <constructor-arg index = "1" value = "$ {redis.node1.port}"/> </ebean>ขั้นตอนที่สามคือการเขียนไฟล์คุณสมบัติที่เชื่อมต่อกับเซิร์ฟเวอร์ Redis: Redis.properties
redis.maxtotal = 100redis.node1.host = 127.0.0.1redis.node1.port = 6379
ขั้นตอนที่ 4: เขียนคลาสวิธีการทำงานที่เกี่ยวข้องคลาสฟังก์ชันและคลาส Redisservice ของ Redis:
คลาส Funcrion:
แพ็คเกจ xx.service;/** * เพื่อแยกรหัสการทำงานเดียวกัน * @author yeying * <p> คำอธิบาย: </p> * <p> บริษัท : </p> * @date: 5 ธันวาคม 2017 เวลา 9:02:44 น. */ฟังก์ชันอินเทอร์เฟซสาธารณะ <t, e> {สาธารณะคลาส Redisservice:
แพ็คเกจ com.taotao.common.service; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.stereotype.service; นำเข้า Redis.clients.jedis.shardedjedis; YEYING *<p> คำอธิบาย: </p> *<p> บริษัท : </p> *@date: 3 ธันวาคม 2017 เวลา 2:11:47 น. */ @servicepublic คลาส redisservice {@autowired (จำเป็น = false) // จำเป็นต้องฉีด ส่วนตัว <t> t ดำเนินการ (ฟังก์ชั่น <t, chardedjedis> ความสนุก) {ShardedJedis ShardedJedis = null; ลอง {// รับวัตถุเจดิสเศษจากสระว่ายน้ำเชื่อมต่อ chardedjedis = chardedjedispool.getResource (); // รับข้อมูลจาก Redis return fun.callback (Shardedjedis); } catch (exception e) {e.printstacktrace (); } ในที่สุด {ถ้า (null! = chardedjedis) {// ปิดตรวจจับว่าการเชื่อมต่อนั้นถูกต้องวางกลับเข้าไปในพูลการเชื่อมต่อและรีเซ็ตสถานะหากไม่ถูกต้อง, chardedjedis.close (); }} return null; } / ** * เรียกใช้การดำเนินการตั้งค่า * @param คีย์ * @param value * @return * / ชุดสตริงสาธารณะ (คีย์สตริงสุดท้ายค่าสตริงสุดท้าย) {ส่งคืนสิ่งนี้ execute (ฟังก์ชั่นใหม่ <สตริง, chardedjedis> () {@Override สตริงโทรกลับ } / ** * ดำเนินการตั้งค่าและตั้งเวลาการอยู่รอดในวินาที * @param คีย์ * @param value * @param วินาที * @return * / ชุดสตริงสาธารณะ (คีย์สตริงสุดท้ายค่าสตริงสุดท้าย E.Expire (คีย์, วินาที); } / ** * ดำเนินการรับการดำเนินการ * @param คีย์ * @return * / สตริงสาธารณะรับ (คีย์สตริงสุดท้าย) {return this.execute (ฟังก์ชั่นใหม่ <String, ShardedJedis> () {@Override Public String callback (ShardedJedis e) {return e.get (key); } / ** * ดำเนินการตั้งค่า * @param คีย์ * @return * / Public Long Del (คีย์สตริงสุดท้าย) {return this.execute (ฟังก์ชั่นใหม่ <Long, ShardedJedis> () {@Override การเรียกกลับแบบสาธารณะ (ShardedJedis e) {return e.del (key);}}); } / ** * ตั้งค่าเวลาการอยู่รอดในวินาที * @param key * @param วินาที * @return * / การหมดอายุในที่สาธารณะ (คีย์สตริงสุดท้าย, วินาทีสุดท้าย) {ส่งคืนสิ่งนี้ execute (ฟังก์ชั่นใหม่ <ยาว, shardedjedis> () {@override - -ขั้นตอนที่ 5: เริ่มบริการ Redis, Redis-server.exe และดับเบิลคลิกเพื่อเปิด:
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com