2016-09-26 15:12:40 +00:00
|
|
|
---
|
|
|
|
layout: "docs"
|
|
|
|
page_title: "Commands: KV Delete"
|
|
|
|
sidebar_current: "docs-commands-kv-delete"
|
|
|
|
---
|
|
|
|
|
|
|
|
# Consul KV Delete
|
|
|
|
|
|
|
|
Command: `consul kv delete`
|
|
|
|
|
2017-04-04 16:33:22 +00:00
|
|
|
The `kv delete` command removes the value from Consul's KV store at the
|
2016-09-26 15:12:40 +00:00
|
|
|
given path. If no key exists at the path, no action is taken.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
Usage: `consul kv delete [options] KEY_OR_PREFIX`
|
|
|
|
|
|
|
|
#### API Options
|
|
|
|
|
2017-02-08 00:16:33 +00:00
|
|
|
<%= partial "docs/commands/http_api_options_client" %>
|
|
|
|
<%= partial "docs/commands/http_api_options_server" %>
|
2016-09-26 15:12:40 +00:00
|
|
|
|
|
|
|
#### KV Delete Options
|
|
|
|
|
2016-09-26 23:15:27 +00:00
|
|
|
* `-cas` - Perform a Check-And-Set operation. Specifying this value also
|
|
|
|
requires the -modify-index flag to be set. The default value is false.
|
2016-09-26 15:12:40 +00:00
|
|
|
|
|
|
|
* `-modify-index=<int>` - Unsigned integer representing the ModifyIndex of the
|
2016-09-26 23:00:00 +00:00
|
|
|
key. This is used in combination with the -cas flag.
|
2016-09-26 15:12:40 +00:00
|
|
|
|
|
|
|
* `-recurse` - Recursively delete all keys with the path. The default value is
|
|
|
|
false.
|
|
|
|
|
|
|
|
## Examples
|
|
|
|
|
|
|
|
To remove the value for the key named "redis/config/connections" in the
|
2017-04-04 16:33:22 +00:00
|
|
|
KV store:
|
2016-09-26 15:12:40 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
$ consul kv delete redis/config/connections
|
|
|
|
Success! Deleted key: redis/config/connections
|
|
|
|
```
|
|
|
|
|
|
|
|
If the key does not exist, the command will not error, and a success message
|
|
|
|
will be returned:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ consul kv delete not-a-real-key
|
|
|
|
Success! Deleted key: not-a-real-key
|
|
|
|
```
|
|
|
|
|
|
|
|
To only delete a key if it has not been modified since a given index, specify
|
|
|
|
the `-cas` and `-modify-index` flags:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ consul kv get -detailed redis/config/connections | grep ModifyIndex
|
|
|
|
ModifyIndex 456
|
|
|
|
|
|
|
|
$ consul kv delete -cas -modify-index=123 redis/config/connections
|
|
|
|
Error! Did not delete key redis/config/connections: CAS failed
|
|
|
|
|
|
|
|
$ consul kv delete -cas -modify-index=456 redis/config/connections
|
|
|
|
Success! Deleted key: redis/config/connections
|
|
|
|
```
|
|
|
|
|
|
|
|
To recursively delete all keys that start with a given prefix, specify the
|
|
|
|
`-recurse` flag:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ consul kv delete -recurse redis/
|
|
|
|
Success! Deleted keys with prefix: redis/
|
|
|
|
```
|
|
|
|
|
|
|
|
!> **Trailing slashes are important** in the recursive delete operation, since
|
|
|
|
Consul performs a greedy match on the provided prefix. If you were to use "foo"
|
|
|
|
as the key, this would recursively delete any key starting with those letters
|
|
|
|
such as "foo", "food", and "football" not just "foo". To ensure you are deleting
|
|
|
|
a folder, always use a trailing slash.
|
|
|
|
|
|
|
|
It is not valid to combine the `-cas` option with `-recurse`, since you are
|
|
|
|
deleting multiple keys under a prefix in a single operation:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ consul kv delete -cas -recurse redis/
|
|
|
|
Cannot specify both -cas and -recurse!
|
|
|
|
```
|