<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Komentarze do: Spring Cache &#8211; jak skonfigurować cache w springu	</title>
	<atom:link href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/feed/" rel="self" type="application/rss+xml" />
	<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/</link>
	<description>Blog o programowaniu w Javie</description>
	<lastBuildDate>Fri, 04 Aug 2023 17:06:21 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3711</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Tue, 11 Jan 2022 22:42:39 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-3711</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3710&quot;&gt;Jola&lt;/a&gt;.

Zacząłbym od zdobycia większej ilości informacji, bo optymalizowanie czegokolwiek mając szczątkowe informacje, jest bez sensu. Więcej popsujesz, niż naprawisz. Popytaj kogoś, kto wie cokolwiek o tej aplikacji, z czym jest problem.

Nie wiem jakiej bazy używasz, ale zwykle czy to w bazie, czy to w aplikacji można wylogować zapytania. Jeśli używasz Hibernate i Springa to do wylogowania zapytań służy properties show_sql (w zależności, czy używasz Spring, Spring Boota, czy czystego Hibernate&#039;a poszukaj w google jak ustawić logowanie zapytań sql). Nie rób tego na produkcji, tylko np. lokalnie.

Dopiero jak będzie widzieć, których zapytań jest za dużo, to możesz zacząć coś optymalizować. Najczęstszy problem z Hibernate to n + 1 zapytań. Tu masz &lt;a href=&quot;https://nullpointerexception.pl/hibernate-i-problem-n-plus-1-zapytan/&quot;&gt;link&lt;/a&gt;. Sprawdź, czy nie ma z tym problemu. Później możesz zacząć używać cache, jak już będziesz wiedziała, które miejsca sprawiają problemy.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3710">Jola</a>.</p>
<p>Zacząłbym od zdobycia większej ilości informacji, bo optymalizowanie czegokolwiek mając szczątkowe informacje, jest bez sensu. Więcej popsujesz, niż naprawisz. Popytaj kogoś, kto wie cokolwiek o tej aplikacji, z czym jest problem.</p>
<p>Nie wiem jakiej bazy używasz, ale zwykle czy to w bazie, czy to w aplikacji można wylogować zapytania. Jeśli używasz Hibernate i Springa to do wylogowania zapytań służy properties show_sql (w zależności, czy używasz Spring, Spring Boota, czy czystego Hibernate&#8217;a poszukaj w google jak ustawić logowanie zapytań sql). Nie rób tego na produkcji, tylko np. lokalnie.</p>
<p>Dopiero jak będzie widzieć, których zapytań jest za dużo, to możesz zacząć coś optymalizować. Najczęstszy problem z Hibernate to n + 1 zapytań. Tu masz <a href="https://nullpointerexception.pl/hibernate-i-problem-n-plus-1-zapytan/">link</a>. Sprawdź, czy nie ma z tym problemu. Później możesz zacząć używać cache, jak już będziesz wiedziała, które miejsca sprawiają problemy.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Jola		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3710</link>

		<dc:creator><![CDATA[Jola]]></dc:creator>
		<pubDate>Tue, 11 Jan 2022 21:21:20 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-3710</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3708&quot;&gt;Mateusz Dąbrowski&lt;/a&gt;.

Dzięki za konkretną odpowiedź :) No cóż... ja mam tylko szczątkowe informacje, że baza nie daje rady obsłużyć tylu zapytań na raz i trzeba to poprawić :) W internecie głównym rozwiązaniem takiego problemu jest chmura (nie wchodzi w grę) albo cache, tak że trochę na ślepo będę to wszystko robić i mam nadzieję, że dla odmiany nie wysypie się teraz aplikacja.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3708">Mateusz Dąbrowski</a>.</p>
<p>Dzięki za konkretną odpowiedź 🙂 No cóż&#8230; ja mam tylko szczątkowe informacje, że baza nie daje rady obsłużyć tylu zapytań na raz i trzeba to poprawić 🙂 W internecie głównym rozwiązaniem takiego problemu jest chmura (nie wchodzi w grę) albo cache, tak że trochę na ślepo będę to wszystko robić i mam nadzieję, że dla odmiany nie wysypie się teraz aplikacja.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3708</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Tue, 11 Jan 2022 16:26:11 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-3708</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3707&quot;&gt;Jola&lt;/a&gt;.

Problemy z bazą przy pobieraniu plików? Trzymasz te pliki w bazie danych? Czy to rozwiązanie pomoże w twoim problemie, tego nie wiem. Nie znam twojego przypadku, opisałaś to bardzo ogólnikowo i ciężko jest cokolwiek tutaj napisać.

Generalnie taki cache pomaga jeśli masz zbyt dużo zapytań do bazy danych i baza się nie wyrabia. Cachując pewne rzeczy sprawiasz, że jest mniej zapytań do bazy danych. Jeśli u ciebie problemem jest ilość zapytań do bazy danych, to warto użyć cache.

Ale zacząłbym od zrobienia dogłębnej analizy, co tak naprawdę jest problemem.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3707">Jola</a>.</p>
<p>Problemy z bazą przy pobieraniu plików? Trzymasz te pliki w bazie danych? Czy to rozwiązanie pomoże w twoim problemie, tego nie wiem. Nie znam twojego przypadku, opisałaś to bardzo ogólnikowo i ciężko jest cokolwiek tutaj napisać.</p>
<p>Generalnie taki cache pomaga jeśli masz zbyt dużo zapytań do bazy danych i baza się nie wyrabia. Cachując pewne rzeczy sprawiasz, że jest mniej zapytań do bazy danych. Jeśli u ciebie problemem jest ilość zapytań do bazy danych, to warto użyć cache.</p>
<p>Ale zacząłbym od zrobienia dogłębnej analizy, co tak naprawdę jest problemem.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Jola		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-3707</link>

		<dc:creator><![CDATA[Jola]]></dc:creator>
		<pubDate>Tue, 11 Jan 2022 12:55:04 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-3707</guid>

					<description><![CDATA[Cześć, pytanie od początkującego : czy to rozwiązanie sprawdzi się przy problemach z bazą danych podczas pobierania plików APK (ok 30 Mb) przez wielu użytkowników naraz? Jak przy starszym kodzie bez Hibernate mogę sprawdzić np. za pomocą logów czy cache się załadował/ zaktualizował / nie rośnie nadmiernie? Jakich problemów należy się spodziewać, albo na co zwrócić uwagę? Pozdrawiam :)]]></description>
			<content:encoded><![CDATA[<p>Cześć, pytanie od początkującego : czy to rozwiązanie sprawdzi się przy problemach z bazą danych podczas pobierania plików APK (ok 30 Mb) przez wielu użytkowników naraz? Jak przy starszym kodzie bez Hibernate mogę sprawdzić np. za pomocą logów czy cache się załadował/ zaktualizował / nie rośnie nadmiernie? Jakich problemów należy się spodziewać, albo na co zwrócić uwagę? Pozdrawiam 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2214</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Sat, 24 Oct 2020 14:16:11 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-2214</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2213&quot;&gt;Arek&lt;/a&gt;.

ok, jeśli potrzebujesz czegoś więcej w sensie osobnego serwisu, który zapewnia Ci cache, to jest już wiele dostępnych możliwości. Np. Możesz zacząć od Redisa. Redis się klastruje, więc możesz mieć klaster Redisa dostępny dla twoich microserwisów (czy nawet dla jednej aplikacji jak nie masz microserwisów). Możesz też w łatwy sposób odpalić go na dockerze (nie trzeba prawie nic konfigórować w Redisie). I to w większości przypadków na początek wystarczy. 

Jeśli potrzebujesz czegoś innego, to możesz skorzystać z innych dostępnych opcji np. Hazelcast, Infinispan, czy też Terracota. 

Myślę, że nie ma potrzeby pisać swojego providera, chyba że rozważasz tu aspekt edukacyjny (co może być oczywiście ciekawy zagadnieniem i warto się pobawić - wcześniej myślałem, że właśnie o to Ci chodzi <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />).]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2213">Arek</a>.</p>
<p>ok, jeśli potrzebujesz czegoś więcej w sensie osobnego serwisu, który zapewnia Ci cache, to jest już wiele dostępnych możliwości. Np. Możesz zacząć od Redisa. Redis się klastruje, więc możesz mieć klaster Redisa dostępny dla twoich microserwisów (czy nawet dla jednej aplikacji jak nie masz microserwisów). Możesz też w łatwy sposób odpalić go na dockerze (nie trzeba prawie nic konfigórować w Redisie). I to w większości przypadków na początek wystarczy. </p>
<p>Jeśli potrzebujesz czegoś innego, to możesz skorzystać z innych dostępnych opcji np. Hazelcast, Infinispan, czy też Terracota. </p>
<p>Myślę, że nie ma potrzeby pisać swojego providera, chyba że rozważasz tu aspekt edukacyjny (co może być oczywiście ciekawy zagadnieniem i warto się pobawić &#8211; wcześniej myślałem, że właśnie o to Ci chodzi 😉).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Arek		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2213</link>

		<dc:creator><![CDATA[Arek]]></dc:creator>
		<pubDate>Sat, 24 Oct 2020 12:16:32 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-2213</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2212&quot;&gt;Mateusz Dąbrowski&lt;/a&gt;.

Pisząc o storage miałem na myśli przechowywanie cache nie inMemory (pewnie niezalecane przy wielu zasobach) oraz nie na lokalnej maszynie (taki mikroserwis uruchomiony na dockerze musiałby mieć zapewne podmontowany własny storage dla poda) a na czymś pokroju Terracotta (jeśli dobrze zrozumiałem zastosowanie tego narzędzia).]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2212">Mateusz Dąbrowski</a>.</p>
<p>Pisząc o storage miałem na myśli przechowywanie cache nie inMemory (pewnie niezalecane przy wielu zasobach) oraz nie na lokalnej maszynie (taki mikroserwis uruchomiony na dockerze musiałby mieć zapewne podmontowany własny storage dla poda) a na czymś pokroju Terracotta (jeśli dobrze zrozumiałem zastosowanie tego narzędzia).</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2212</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Sat, 24 Oct 2020 11:54:48 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-2212</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2211&quot;&gt;Arek&lt;/a&gt;.

Tak, dla Ehcache też jest to przechowywane w pamięci, aczkolwiek w Ehcache masz możliwość konfiguracji, czy chcesz to trzymać na Heap (domyślna opcja), czy chcesz to trzymać offheap. No i dodatkowo możesz też na dysku. 

Żeby zdefiniować własny storage, to tak naprawdę trzeba zrobić swojego providera, który implementuje standard JSR 107. W skrócie jest takie api javax.cache.cache-api (znajdziesz w meven repository) i trzeba je zaimplementować <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />
Pytanie czego Ci brakuje w dostępnych implementacjach, że chcesz robić swój storage?]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2211">Arek</a>.</p>
<p>Tak, dla Ehcache też jest to przechowywane w pamięci, aczkolwiek w Ehcache masz możliwość konfiguracji, czy chcesz to trzymać na Heap (domyślna opcja), czy chcesz to trzymać offheap. No i dodatkowo możesz też na dysku. </p>
<p>Żeby zdefiniować własny storage, to tak naprawdę trzeba zrobić swojego providera, który implementuje standard JSR 107. W skrócie jest takie api javax.cache.cache-api (znajdziesz w meven repository) i trzeba je zaimplementować 😉<br />
Pytanie czego Ci brakuje w dostępnych implementacjach, że chcesz robić swój storage?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Arek		</title>
		<link>https://nullpointerexception.pl/spring-cache-jak-skonfigurowac-cache-w-springu/#comment-2211</link>

		<dc:creator><![CDATA[Arek]]></dc:creator>
		<pubDate>Sat, 24 Oct 2020 10:14:41 +0000</pubDate>
		<guid isPermaLink="false">https://nullpointerexception.pl/?p=2733#comment-2211</guid>

					<description><![CDATA[Cześć, dzięki za fajny materiał.
Wspomniałeś, że dla standardowego (generycznego) providera cache przechowywany jest w mapie, w pamięci.
Czy w przypadku skorzystania z np. ehcache, standardowo dalej jest to przechowywane w pamięci?

W jaki sposób można zdefiniować własny storage cache&#039;a?]]></description>
			<content:encoded><![CDATA[<p>Cześć, dzięki za fajny materiał.<br />
Wspomniałeś, że dla standardowego (generycznego) providera cache przechowywany jest w mapie, w pamięci.<br />
Czy w przypadku skorzystania z np. ehcache, standardowo dalej jest to przechowywane w pamięci?</p>
<p>W jaki sposób można zdefiniować własny storage cache&#8217;a?</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
