= gerrit flush-caches

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

== SYNOPSIS
[verse]
--
_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

The caller must be a member of a group that is granted one of the
following capabilities:

* link:access-control.html#capability_flushCaches[Flush Caches] (any cache
  except "web_sessions")
* link:access-control.html#capability_maintainServer[Maintain Server] (any cache
  including "web_sessions")
* link:access-control.html#capability_administrateServer[Administrate Server]
  (any cache including "web_sessions")

== 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
	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
---------
