(1) Pom.xml يقدم حزمة الجرة ، على النحو التالي:
<Rependency> <roupled> org.springframework.boot </rougiD> <insifactid> Spring-Boot-Starter-Data-Redis </shintifactid> </sependency>
(2) تعديل فئة بدء تشغيل المشروع ، وإضافة التعليق التوضيحي enableCaching ، وتمكين وظيفة التخزين المؤقت ، على النحو التالي:
حزمة springboot ؛ استيراد org.springframework.boot.springapplication ؛ استيراد org.springframework.boot.autoconfigure.springbootapplication ؛ استيراد org.springframework.cache.annotation.enablecaching ؛ استيراد الاستيراد ؛ org.springframework.scheduling.annotation.enablescheduling ؛@springbootapplication@enlobscheduling@enablecachingpublic springbootapplication {public static void main (string [] args) }}(3) تكوين معلومات اتصال redis في application.properties ، على النحو التالي:
# redis فهرس قاعدة البيانات (الافتراضي هو 0) spring.redis.database = 0# redis عنوان خادم spring.redis.host = 172.31.19.222# Redis connect port spring.redis الحد الأقصى لوقت انتظار حظر تجمع الاتصال (باستخدام القيم السلبية يعني عدم وجود حد) spring.redis.pool.max-wait = -1# اتصال الخمول القصوى في مجموعة الاتصال spring.redis.pool.max-idle = 8# اتصال الخمول في الاتصال
(4) قم بإنشاء RedisconFig فئة Cache Redis جديدة ، على النحو التالي:
package springboot.config ؛ استيراد org.springframework.beans.factory.annotation.value ؛ استيراد org.springframework.cache.cachemanager ؛ org.springframework.cache.antation.cachingConfigurersuport ؛ org.springframework.context.annotation.bean ؛ import org.springframework.context.Antation.Configuration ؛ import org.springframework.data.redis.cache.rediscachemanager org.springframework.data.redis.core.redistemplate ؛ استيراد org.springframework.data.core.stringredistemplate ؛ org.springframework.data.redis.serializer.jackson2jsonredisserializer ؛ com.fasterxml.jackson.annotation.PropertyAccessor ؛ استيراد com.fasterxml.jackson.databind.objectmapper ؛/** * Redis cache class *@author szekinwin * */@configuration inablecachingpublic redisconfig يمتد cachingconfigport { Value ("$ {spring.redis.host}") مضيف سلسلة خاصة ؛ value ("$ {spring.redis.port}") منفذ int الخاص ؛ value ("$ {spring.redis.timeout}") private int timeout ؛ // استراتيجية توليد مفتاح ذاكرة التخزين المؤقت المخصصة // @bean // keygenerator public keygenerator () {// إرجاع keygenerator new new () {// verride // كائن عام توليد (هدف الكائن ، java.lang.reflect.method method ، object ... params) {// stringbuffer sb = جديد sb.append (target.getClass (). getName ()) ؛ // sb.append (method.getName ()) ؛ // for (object obj: params) {// sb.append (obj.toString ()) ؛ //} // return sb.toString () ؛ //} //} ؛ Cache Manager @Bean Public CacheManager CacheManager (suppressWarnings ("RawTypes") Redistemplate Redistemplate) {Rediscachemanager Cachemanager = New Rediscachemanager (Redistemplate) ؛ // تعيين وقت انتهاء صلاحية ذاكرة التخزين المؤقت Cachemanager.setDefaultExpiration (10000) ؛ إرجاع Cachemanager } bean public redistemplate <string ، string> redistemplate (redisconnectionFactory Factory) {StringRedIstemplate template = new StringRedIstemplate (Factory) ؛ setSerializer (قالب) ؛ // قم بتعيين قالب أداة التسلسل. قالب العودة. } private void setSerializer (stringRediStemplate template) {suppressWarnings ({"RawTypes" ، "unched"}) jackson2jsonredisserializer jackson2jsonredisserializer = new Jackson2Jsonredisserializer (Object.class) ؛ ObjectMapper om = new ObjectMapper () ؛ om.setVisability (propertyAccessor.all ، jsonautodetect.vibility.any) ؛ om.enabledefaulttyping (ObjectMapper.defaulttyping.non_final) ؛ Jackson2Jsonredisserializer.setObjectMapper (OM) ؛ template.setValueserializer (Jackson2JsonRedisserializer) ؛ }}(5) إنشاء usermapper جديد ، على النحو التالي:
package springboot.dao ؛ import org.apache.ibatis.annotations.delete ؛ import org.apache.ibatis.annotations.insert ؛ import org.apache.ibatis.antations.mapper ؛ import org.apache.ibatis.annotations.Param ؛ org.apache.ibatis.annotations.update ؛ import org.springframework.cache.annotation.cacheconfig ؛ استيراد org.springframework.cache.antation.cacheevict springboot.domain.user ؛@mapper@cacheconfig (cachenames = "المستخدمين") الواجهة العامة usermapper {inSert ("insert في user (name ، age) القيم (#{name} ،#{age})) @select ("حدد * من المستخدم حيث id =#{id}") cachable (key = "#p0") userbyid (param ("id") معرف السلسلة) ؛ cacheput (key = "#p0")@update ("تحديث اسم تعيين المستخدم =#{name} حيث id =#{id}") void updateById (param ("id") معرف السلسلة ،@param ("name") اسم السلسلة) ؛ // إذا تم تحديده على أنه صحيح ، فسيتم مسح جميع ذاكرة التخزين المؤقت فورًا بعد أن تسمى الطريقة cacheeVict (key = "#p0" ، allentries = true) delete ("حذف من المستخدم حيث id =#{id}") void deleteById (param ("id")Cachable Caches نتيجة الاستعلام إلى redis ، (key = "#p0") يحدد المعلمة الأولى التي تم تمريرها كمفتاح redis.
cacheput ، حدد المفتاح ، واضغط على النتائج المحدثة إلى redis
cacheevict ، حدد المفتاح ، حذف بيانات ذاكرة التخزين المؤقت ، allentries = صحيح ، سيتم مسح ذاكرة التخزين المؤقت مباشرة بعد استدعاء الطريقة
(6) يتم دمج طبقة الخدمة وطبقة وحدة التحكم مثل المقالة السابقة. ابدأ خادم redis. يمكنك الرجوع إلى المدونة السابقة للتثبيت وبدء تشغيل خادم Redis. العنوان كما يلي:
http://www.cnblogs.com/gdpuzxs/p/6623171.html
(7) تكوين معلومات السجل على النحو التالي:
## log4j التكوين log4j.rootcategory = debug ، stdout ## إخراج وحدة التحكم log4j.appender.stdout = org.apache.log4j.consolePenderLog4j.appender.stdout.layout = org.apache.log4j.patternlayoutlog4j.appender.stdout.layout.conversionpattern = ٪ d ٪ c {1}: ٪ l - ٪ m ٪ n(8) تحقق من ذاكرة التخزين المؤقت Redis
أولاً ، نقوم بإدخال جزء من البيانات في جدول المستخدم ، وتعرض قاعدة البيانات على النحو التالي:
الآن ، دعنا نستفسر عن البيانات باستخدام المعرف = 24 في جدول المستخدم ، وإخراج المعلومات من وحدة التحكم Guanzi كما يلي:
من خلال معلومات إخراج وحدة التحكم ، يمكننا أن نعرف أنه تم تنفيذ استعلام قاعدة البيانات هذه المرة وتم تمكين نتائج استعلام Redis Cache. بعد ذلك ، نقوم بالاستعلام عن البيانات بمعرف = 24 في جدول المستخدم مرة أخرى ونراقب وحدة التحكم ، على النحو التالي:
من خلال معلومات إخراج وحدة التحكم ، يمكننا أن نعلم أنه هذه المرة ، لم نقم بتنفيذ استعلام قاعدة البيانات ، ولكن بدلاً من ذلك استعنيها من ذاكرة التخزين المؤقت Redis وإرجاع نتيجة الاستعلام. نتحقق من المعلومات الموجودة في Redis ، على النحو التالي:
تستخدم طريقة FindUser طريقة التعليق التوضيحي @cachable (key = "#p0") ، مما يعني أن المعرف يستخدم كقيمة مفتاح في redis. عندما نقوم بتحديث البيانات ، يجب أن نستخدم cacheput (key = "#p0") لتحديث البيانات المخزنة مؤقتًا ، وإلا سيتم الاستعلام عن البيانات القذرة.
لخص
ما ورد أعلاه هو طريقة تنفيذ Springboot باستخدام Redis Cache الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فالرجاء ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب!