mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #354 from philips/fixup-prevExist-README
feat(README): add a prevExist example
This commit is contained in:
commit
e34d368a3e
20
README.md
20
README.md
@ -219,9 +219,9 @@ The watch command returns immediately with the same response as previous.
|
||||
|
||||
### Atomic Compare-and-Swap (CAS)
|
||||
|
||||
Etcd can be used as a centralized coordination service in a cluster and `CompareAndSwap` is the most basic operation to build distributed lock service.
|
||||
Etcd can be used as a centralized coordination service in a cluster and `CompareAndSwap` is the most basic operation to build distributed lock service.
|
||||
|
||||
This command will set the value of a key only if the client-provided conditions are equal to the current conditions.
|
||||
This command will set the value of a key only if the client-provided conditions are equal to the current conditions.
|
||||
|
||||
The current comparable conditions are:
|
||||
|
||||
@ -238,8 +238,20 @@ Let's create a key-value pair first: `foo=one`.
|
||||
curl -L http://127.0.0.1:4001/v2/keys/foo -XPUT -d value=one
|
||||
```
|
||||
|
||||
Let's try an invalid `CompareAndSwap` command first.
|
||||
We can provide the `prevValue` parameter to the set command to make it a `CompareAndSwap` command.
|
||||
Let's try some invalid `CompareAndSwap` commands first.
|
||||
|
||||
Trying to set this existing key with `prevExist=false` fails as expected:
|
||||
```sh
|
||||
curl -L http://127.0.0.1:4001/v2/keys/foo?prevExist=false -XPUT -d value=three
|
||||
```
|
||||
|
||||
The error code explains the problem:
|
||||
|
||||
```json
|
||||
{"errorCode":105,"message":"Already exists","cause":"/foo","index":39776}
|
||||
```
|
||||
|
||||
Now lets provide a `prevValue` parameter:
|
||||
|
||||
```sh
|
||||
curl -L http://127.0.0.1:4001/v2/keys/foo?prevValue=two -XPUT -d value=three
|
||||
|
Loading…
x
Reference in New Issue
Block a user