10-modul · 6-dars: Cache · Redis

Daraja: Ilg'or

Cache · Redis. Advanced backend bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Cache · Redis tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Cache qimmat hisoblash yoki o'qish natijasini keyingi foydalanish uchun saqlaydi. U tezlikni oshiradi, lekin eskirgan ma'lumot, invalidation va xotira xarajatini keltiradi. HTTP cache va server ichidagi method cache ikki xil qatlamdir. GET javoblari mos header bilan cachelanishi mumkin; shaxsiy response uchun public cache xavfli. Spring CacheManager cachelarni boshqaradi; @Cacheable mavjud natijani oladi yoki hisoblaydi, @CachePut natijani yozadi, @CacheEvict eski qiymatni olib tashlaydi. @EnableCaching va provider zarur. Proxy chegarasi, key tarkibi, TTL va maximumSize muhim. Faqat id yetarli bo'lmagan multi-tenant tizimda keyga tenant va kerakli authorization kontekstini qo'shing. Redis tarmoq orqali ishlaydigan in-memory data store bo'lib, cache va boshqa vazifalarda ishlatiladi. Redisning o'zi qo'shimcha dependency: outage va serialization siyosatini belgilang. Juda o'zgaruvchan yoki qat'iy yangi bo'lishi shart qiymatni cachelamang. Stampede, concurrent update va evictiondan keyingi noto'g'ri qayta yozilish holatlarini sinang; cache hech qachon ruxsat tekshiruvining o'rni emas.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/10-module%28Spring%20Boot%20Part%20%7C%7C%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

@org.springframework.cache.annotation.Cacheable(cacheNames = "publicTopics", key = "#id")
public TopicDto publicTopic(long id) { return loadPublishedTopic(id); }
// Faqat public kontent; TTL va maximumSize providerda belgilanadi.

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-10, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)