NoSQL 2024 - Cvičenie ku Key-value databáze Redis
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Praktické cvičenie k databáze Redis ukazuje tri úrovne práce s key-value úložiskom v Jave — od priameho volania príkazov cez knižnicu Jedis, cez Spring Data Redis až po repozitáre v Spring Boote. Prednášajúci najprv v IntelliJ zostaví viacmodulový Maven projekt, pripojí sa na školský Redis cluster a demonštruje na ňom základné príkazy set, get a increment. Ťažiskom prvej časti je zadanie „paralel increment“: trieda RedisAtomicInteger slúži ako zdieľaná atomická premenná nielen medzi vláknami jedného procesu, ale medzi všetkými strojmi v učebni — účastníci si navzájom „kradnú“ čísla, čím sa ukáže hlavná sila Redisu ako zdieľaného stavu medzi výpočtovými uzlami. Cez redis-cli si skupina prezrie fungovanie clustra: hash sloty rozdelené medzi tri master servery a automatické presmerovanie klienta na správny uzol. Druhá časť pridáva Spring Boot — konfiguračnú triedu so zavináčmi @Configuration a @Bean, entitu s @RedisHash a @Indexed a rozhranie CrudRepository, ktorého implementáciu dodá framework sám.
- Cvičenie prechádza tromi úrovňami prístupu k Redisu z Javy: priamo cez Jedis, cez Spring Data Redis a nakoniec cez repozitáre Spring Bootu
- JedisCluster sprístupňuje v Jave celú paletu príkazov známych z redis-cli (set, get, incr, hashové operácie); protokol je stringový, takže všetko ide ako reťazec
- RedisAtomicInteger je zdieľaná atomická premenná — funguje naprieč vláknami, procesmi aj celými strojmi, nie len v rámci jedného procesu
- Zadanie „paralel increment“: ExecutorService spustí viacero úloh nad spoločným čítačom a každý účastník dostane unikátne čísla, aj keď ho súčasne používa celá učebňa
- Typické využitie Redisu je krátkodobý zdieľaný stav medzi uzlami (napríklad session používateľa), nie dlhodobé ukladanie dát
- Redis cluster delí kľúče do hash slotov (0–5460, 5461–10922, 10923–16383); príkaz cluster nodes ich vypíše a klient je automaticky presmerovaný na správny master
- RedisTemplate je obdobou JdbcTemplate — potrebuje connection factory a serializer, ktorý prevedie napríklad typ long na reťazec
- Entita s @RedisHash a @Id sa ukladá ako samostatný kľúč, @Indexed nad priezviskom vytvorí sekundárny index; rozhranie dediace od CrudRepository implementuje Spring Boot automaticky
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky