2016-02-03 10:20:22 +00:00
|
|
|
<!--
|
|
|
|
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
|
|
|
|
~ and other contributors as indicated by the @author tags.
|
|
|
|
~
|
|
|
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
~ you may not use this file except in compliance with the License.
|
|
|
|
~ You may obtain a copy of the License at
|
|
|
|
~
|
|
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
~
|
|
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
|
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
~ See the License for the specific language governing permissions and
|
|
|
|
~ limitations under the License.
|
|
|
|
-->
|
|
|
|
|
2015-07-17 11:45:43 +00:00
|
|
|
<chapter id="server_cache">
|
|
|
|
<title>Server Cache</title>
|
|
|
|
<para>
|
|
|
|
By default, Keycloak caches realm metadata and users. There are two separate caches, one for realm metadata
|
|
|
|
(realm, application, client, roles, etc...) and one for users. These caches greatly improves the performance of the server.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<section>
|
|
|
|
<title>Disabling Caches</title>
|
|
|
|
<para>
|
|
|
|
The realm and user caches can be disabled through configuration or through the management console. To
|
|
|
|
manally disable the realm or user cache, you must edit the <literal>keycloak-server.json</literal> file
|
|
|
|
in your distribution. Here's what the config looks like initially.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
<programlisting><![CDATA[
|
|
|
|
"realmCache": {
|
|
|
|
"provider": "${keycloak.realm.cache.provider:mem}"
|
|
|
|
},
|
|
|
|
|
|
|
|
"userCache": {
|
|
|
|
"provider": "${keycloak.user.cache.provider:mem}",
|
|
|
|
"mem": {
|
|
|
|
"maxSize": 20000
|
|
|
|
}
|
|
|
|
},
|
|
|
|
]]></programlisting>
|
|
|
|
</para>
|
|
|
|
<para>You must then change it to:
|
|
|
|
<programlisting><![CDATA[
|
|
|
|
"realmCache": {
|
|
|
|
"provider": "${keycloak.realm.cache.provider:none}"
|
|
|
|
},
|
|
|
|
|
|
|
|
"userCache": {
|
|
|
|
"provider": "${keycloak.user.cache.provider:none}"
|
|
|
|
},
|
|
|
|
]]></programlisting>
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
You can also disable either of the caches at runtime through the Keycloak admin console Realm Settings page.
|
|
|
|
This will not permanently disable the cache. If you reboot the server, the cache will be re-enabled unless
|
|
|
|
you manualy disable the cache in the <literal>keycloak-server.json</literal> file.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
|
|
<title>Clear Caches</title>
|
|
|
|
<para>
|
|
|
|
To clear the realm or user cache, go to the Keycloak admin console Realm Settings->Cache Config page. Disable the cache
|
|
|
|
you want. Save the settings. Then re-enable the cache. This will cause the cache to be cleared.
|
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
|
|
<title>Cache Config</title>
|
|
|
|
<para>
|
|
|
|
Cache configuration is done within <literal>keycloak-server.json</literal>. Changes to this file will not
|
|
|
|
be seen by the server until you reboot. Currently you can only configure the max size of the user cache.
|
|
|
|
<programlisting><![CDATA[
|
|
|
|
"userCache": {
|
|
|
|
"provider": "${keycloak.user.cache.provider:mem}",
|
|
|
|
"mem": {
|
|
|
|
"maxSize": 20000
|
|
|
|
}
|
|
|
|
},
|
|
|
|
]]></programlisting>
|
|
|
|
</para>
|
|
|
|
</section>
|
2014-07-18 15:43:44 +00:00
|
|
|
</chapter>
|