gerrit flush-caches
===================

NAME
----
gerrit flush-caches - Flush some/all server caches from memory

SYNOPSIS
--------
[verse]
 'ssh' -p <port> <host> 'gerrit flush-caches' \
 [\--all | \--list | \--cache <NAME> ...]

DESCRIPTION
-----------
Clear an in-memory cache, forcing Gerrit to reconsult the ground
truth when it needs the information again.

Flushing a cache may be necessary if an administrator modifies
database records directly in the database, rather than going through
the Gerrit web interface.

If no options are supplied, defaults to `--all`.

ACCESS
------
Caller must be a member of the privileged 'Administrators' group.

SCRIPTING
---------
This command is intended to be used in scripts.

OPTIONS
-------
\--all::
	Flush all known caches.  This is like applying a big hammer,
	it will force everything out, potentially more than was
	necessary for the change made.	This option automatically
	skips flushing potentially dangerous caches such as
	"web_sessions".  To flush one of these caches, the caller
	must specifically name them on the command line, e.g. pass
	`\--cache=web_sessions`.

\--list::
	Show a list of the caches.

\--cache=<NAME>::
	Flush only the cache called <NAME>.  May be supplied more
	than once to flush multiple caches in a single command
	execution.

EXAMPLES
--------
List caches available for flushing:

====
	$ ssh -p 29418 review.example.com gerrit flush-caches --list
	accounts
	accounts_byemail
	diff
	groups
	ldap_groups
	openid
	projects
	sshkeys
	web_sessions
====

Flush all caches known to the server, forcing them to recompute:

====
	$ ssh -p 29418 review.example.com gerrit flush-caches --all
====

or

====
	$ ssh -p 29418 review.example.com gerrit flush-caches
====

Flush only the "sshkeys" cache, after manually editing an SSH key
for a user:

====
	$ ssh -p 29418 review.example.com gerrit flush-caches --cache sshkeys
====

Flush "web_sessions", forcing all users to sign-in again:

====
	$ ssh -p 29418 review.example.com gerrit flush-caches --cache web_sessions
====

SEE ALSO
--------

* link:cmd-show-caches.html[gerrit show-caches]
* link:config-gerrit.html#cache[Cache Configuration]
* link:config-gerrit.html#cache_names[Standard Caches]

GERRIT
------
Part of link:index.html[Gerrit Code Review]
