---
acl_categories:
- '@keyspace'
- '@write'
- '@slow'
- '@dangerous'
arguments:
- arguments:
- display_text: async
name: async
since: 4.0.0
token: ASYNC
type: pure-token
- display_text: sync
name: sync
since: 6.2.0
token: SYNC
type: pure-token
name: flush-type
optional: true
type: oneof
arity: -1
categories:
- docs
- develop
- stack
- oss
- rs
- rc
- oss
- kubernetes
- clients
command_flags:
- write
complexity: O(N) where N is the total number of keys in all databases
description: Removes all keys from all databases.
group: server
hidden: false
hints:
- request_policy:all_shards
- response_policy:all_succeeded
history:
- - 4.0.0
- Added the `ASYNC` flushing mode modifier.
- - 6.2.0
- Added the `SYNC` flushing mode modifier.
linkTitle: FLUSHALL
railroad_diagram: /images/railroad/flushall.svg
since: 1.0.0
summary: Removes all keys from all databases.
syntax_fmt: FLUSHALL [ASYNC | SYNC]
title: FLUSHALL
---
{{< note >}}
This command's behavior varies in clustered Redis environments. See the [multi-key operations]({{< relref "/develop/using-commands/multi-key-operations" >}}) page for more information.
{{< /note >}}
Delete all the keys of all the existing databases, not just the currently selected one.
This command never fails.
By default, `FLUSHALL` will synchronously flush all the databases.
Starting with Redis 6.2, setting the **lazyfree-lazy-user-flush** configuration directive to "yes" changes the default flush mode to asynchronous.
It is possible to use one of the following modifiers to dictate the flushing mode explicitly:
* `ASYNC`: flushes the databases asynchronously
* `SYNC`: flushes the databases synchronously
{{< clients-example set="cmds_servermgmt" step="flushall" description="Full delete: Delete all keys from all databases using FLUSHALL (dangerous operation, supports ASYNC/SYNC modes, clears RDB file)" difficulty="advanced" >}}
FLUSHALL SYNC
{{< /clients-example >}}
## Notes
* An asynchronous `FLUSHALL` command only deletes keys that were present at the time the command was invoked. Keys created during an asynchronous flush will be unaffected.
* This command does not delete functions.
* Other than emptying all databases (similar to `FLUSHDB`), this command clears the RDB persistence file, aborts any snapshot that is in progress, and, if the `save` config is enabled, saves an empty RDB file.
## Behavior change history
* `>= 6.2.0`: Default flush behavior now configurable by the **lazyfree-lazy-user-flush** configuration directive.
## Redis Software and Redis Cloud compatibility
| Redis
Software | Redis
Cloud | Notes |
|:----------------------|:-----------------|:------|
| ✅ Standard
❌ Active-Active\* | ✅ Standard
❌ Active-Active | \*Can use the [Active-Active flush API request]({{< relref "/operate/rs/references/rest-api/requests/crdbs/flush" >}}). |
## Return information
{{< multitabs id="flushall-return-info"
tab1="RESP2"
tab2="RESP3" >}}
[Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`.
-tab-sep-
[Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`.
{{< /multitabs >}}