تقدم هذه المقالة طرق وخطوات استخدام Redis Cache في Springboot Project. سوف أشاركها معك. التفاصيل كما يلي:
تغلف Redis لبيانات الربيع عمليات مختلفة من عميل redis بالنسبة لنا لتبسيط الاستخدام.
- عند استخدام redis كقاعدة بيانات أو قائمة انتظار رسائل ، نستخدم عمومًا Redistemplate للعمل
- عند استخدام Redis كذاكرة التخزين المؤقت ، يمكننا استخدامه كتطبيق لذاكرة التخزين المؤقت Spring ، باستخدامه مباشرة من خلال التعليق التوضيحي
1. نظرة عامة
يمكن أن يؤدي استخدام ذاكرة التخزين المؤقت Redis بشكل فعال إلى تحسين أداء النظام بشكل جيد ، خاصة بالنسبة لعمليات الاستعلام ، والتي يمكن أن تقلل بشكل فعال من ضغط قاعدة البيانات.
للحصول على رمز محدد ، راجع هذا المثال
2. إضافة مرجع
انضم إلى Build.gradle
ترجمة ('org.springframework.boot: Spring-Boot-Starter-Data-Redis ")ستقدم Springboot تلقائيًا حزم الجرة ذات الصلة. بعد إضافة هذا المرجع ، تحتاج إلى تثبيت Redis محليًا وبدء تشغيله ، وإلا سيتم الإبلاغ عن خطأ عند بدء تشغيل البرنامج.
3. تمكين ذاكرة التخزين المؤقت من خلال التعليقات التوضيحية
من السهل جدًا تمكين Redis في Springboot. تحتاج فقط إلى إضافة enablecaching التعليق التوضيحي على الفئة الرئيسية للتطبيق ، ثم إضافة التعليق التوضيحي القابل للاستعلام على طريقة الاستعلام التي تحتاج إلى تمكين ذاكرة التخزين المؤقت.
@springbootapplication@EnableCachingpublic Class DemoapPlication تنفذ commandlinerunner {...واجهة الاستعلام:
يمتد اختبار الواجهة العامة TestRepository JParePository <test ، integer> {cachable (value = "testcache") اختبار عام findone (integer id) ؛}تحتاج فئات الكيانات إلى تنفيذ الواجهة القابلة للتسلسل ، وإلا فإن البرنامج سيبلغ عن خطأ لأن كائن Java لا يمكن تسلسله في redis. يستخدم Redis في Springboot DefaultSerializer افتراضيًا ، والذي يستخدم طريقة التسلسل الخاصة بـ JDK.
هناك إجمالي أساليب التسلسل التالية. لسيناريوهات الاستخدام المحددة ، يرجى الرجوع إلى الوثائق الرسمية.
1. Genericjackson2Jsonredisserializer
2
3. Jackson2Jsonredisserializer
4
5
6. Oxmserializer
7. StringRedisserializer
في هذه المرحلة ، يتمتع برنامجنا بالقدرة على الاستعلام عن البيانات من ذاكرة التخزين المؤقت Redis. إذا كنت لا تمانع في جماليات المفتاح المخزن في Redis ، فسيكون العمل قد انتهى.
4. مفتاح جميل
بعد تنفيذ برنامجنا ، قم بتنفيذ الأمر المفتاح * في 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/x01 "
ربما تكون القيمة الرئيسية في هذا غير مقبولة لموظفي التشغيل والصيانة في Redis. نحتاج إلى إيجاد طريقة لجعل القيمة الرئيسية تبدو أفضل ، على الأقل لجعل الناس يفهمونها.
سبب القيمة الرئيسية أعلاه هو أن فئة SimpleKey يتم استخدامها افتراضيًا في الربيع لإنشاء مفتاح redis.
الحل بسيط للغاية. أضف تكوين ذاكرة التخزين المؤقت وحدد كيفية قيام Redis بإنشاء المفاتيح:
CACHECONFIG class cacheconfig يمتد cachingConfigurersupport { @ @ @redistemplate private redistemplate ؛ bean public cachemanager cachemanager () {redistemplate.setKeySerializer (new GenerictOstRingSerializer <Object> (Object.class)) ؛ rediscachemanager cachemanager = new rediscachemanager (redistemplate) ؛ Cachemanager.setDefaultExpiration (3600) ؛ cachemanager.setuseprefix (true) ؛ cachemanager.setCacheprefix (جديد rediscacheprefix () {private final redisserializer <string> serializer = new StringRedisserializer () ؛ private final string delimiter = ":" ؛ public byte [] prefix (string) إرجاع Cachemanager }}في
نسخة الكود كما يلي:
redistemplate.setKeySerializer (generictoStringSerializer <Boung> (Object.class)) ؛
يحدد سطر الكود هذا طريقة توليد القيم الرئيسية في redis. ستقوم طريقة التسلسل لـ generictoStringSerializer بتحويل كائن Java إلى سلسلة وتخزينها في redis.
5. ملخص
يعد تمكين Redis Cache في Springboot أمرًا بسيطًا للغاية ، فأنت بحاجة فقط إلى إضافة بعض التعليقات التوضيحية. في الوقت نفسه ، يمكننا إضافة تكوين ذاكرة التخزين المؤقت لجعل القيم الرئيسية المخزنة في redis لديها قابلية للقراءة جيدة ، بدلاً من مجموعة من البيانات المشوهة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.