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:

  1. 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.
  2. Využite zoznam študentov získaný z MySQL databázy, uložte a prečítajte niektorých z nich z Redis databázy.
  3. Využite triedu CrudRepository na vytvorenie repozitáru entít študentov a otestujte ho
  4. Pomocou publisher/subscriber funkcionality Redis databázy vytvorte program na četovanie.