Use DELEX to delete a string when a condition matches.
IFEQ deletes the key only when its current value equals the given one and IFNE only when it differs. IFDEQ and IFDNE do the same against a digest of the value, as returned by DIGEST, which avoids sending a large value over the wire just to compare it.
The comparison and the delete are one atomic step, which is what makes the command the correct way to release a lock or a claim: delete the key only if it still holds your token, so you never remove a lock that has expired and been taken by someone else. With no condition it simply deletes the key. The conditional forms require a string value, and a key of another type returns an error without being deleted.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
key | Yes | No | String key to delete. |
IFEQ value | IFNE value | No | No | Delete when the stored string is equal to or different from the supplied value. |
IFDEQ digest | IFDNE digest | No | No | Delete when the stored string digest is equal to or different from the supplied 16-character digest. |
Important points#
- Supply at most one condition. With no condition,
DELEXbehaves like deleting a single key. - Conditional forms accept string keys only. A non-string value returns an error and is not deleted.
Response#
The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.
| Protocol | Reply |
|---|---|
| RESP2 | Integer |
| RESP3 | Integer |
Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.
Examples#
TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.
Redis CLI
@upstash/redis
This command is not supported yet in @upstash/redis.
upstash_redis
This command is not supported yet in upstash_redis.