Na týchto cvičeniach budeme pracovať s key-value databázou Redis. Už je nainštalovaná v dvoch verziách (dostupné len zo školskej siete):
Standalone verzia je dostupná nasledovne:
- adresa servera nosql.gursky.sk:6379
- username upjs
- heslo dh38fhw0238923df89djkd93la9fjs0mq9gjflv9jkddj934df90rj
Cluster verzia je dostupná na 3 uzloch bez hesla:
- nosql.gursky.sk:6380
- nosql2.gursky.sk:6380
- nosql3.gursky.sk:6380
Pre lokálnu inštaláciu môžete použiť docker:
docker run -d --name redis -p 6379:6379 redis:8
Ak sa potom chcete napojiť cez príkazový riadok do redisu:
docker exec -it redis redis-cli
Ak nemáte MySQL Server, lokálnu inštaláciu opäť môžete použiť docker:
docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:8
Na tomto cvičení budeme používať anonymizovanú databázu z AISu. Môžete si ju stiahnuť tuto: aislike.sql. Je potrebné ešte nastaviť prihlasovanie.
CREATE USER IF NOT EXISTS `ais-like-user`@`localhost` IDENTIFIED BY 'iceIceBaby'; CREATE USER IF NOT EXISTS `ais-like-user`@`%` IDENTIFIED BY 'iceIceBaby'; GRANT ALL privileges on `ais-like`.* to `ais-like-user`@`localhost`; GRANT ALL privileges on `ais-like`.* to `ais-like-user`@`%`; FLUSH PRIVILEGES;
Zdrojové súbory budeme ukladať do úložiska https://gitlab.science.upjs.sk/nosql-2026/nosql2026. Nachádza sa v ňom aj projekt nosql-datasource, ktorý bude slúžiť ako knižnica na získavanie dát z MySQL. Budeme tiež používať knižnice jedis, lettuce a spring-data-redis.
Zadania:
- Otestujte funkcionalitu triedy RedisAtomicInteger na zdielanej premennej na spoločnom úložisku pomocou viacerých vlákien u vás aj programov vašich kolegov.
- Využite zoznam študentov získaný z MySQL databázy, uložte a prečítajte niektorých z nich z Redis databázy.
- Využite triedu CrudRepository na vytvorenie repozitáru entít študentov a otestujte ho
- Pomocou publisher/subscriber funkcionality Redis databázy vytvorte program na četovanie.