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

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

SYNOPSIS
--------
--
'ssh' -p <port> <host> 'gerrit flush-caches' --all
'ssh' -p <port> <host> 'gerrit flush-caches' --list
'ssh' -p <port> <host> 'gerrit flush-caches' --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,
or in a group that have been granted
link:access-control.html#capability_flushCaches[the 'Flush Caches' global capability].

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]

SEARCHBOX
---------
