forked from DiceDB/dice
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* migrated incr commands * fixed test cases * fixed integration tests * fixed linting issues * updated docs and added error for consistency with redis * fixed integration tests * fixed * updated docs * integration tests * update * integration tests * added integration tests * tests * fix * added integration tests for websocket * updated docs:
- Loading branch information
Showing
19 changed files
with
1,438 additions
and
335 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
--- | ||
title: INCRBY | ||
description: The `INCRBY` command in DiceDB is used to increment the integer value of a key by a specified amount. This command is useful for scenarios where you need to increase a counter or a numeric value stored in a key. | ||
--- | ||
|
||
The `INCRBY` command in DiceDB is used to increment the integer value of a key by a specified amount. This command is useful for scenarios where you need to increase a counter or a numeric value stored in a key. | ||
|
||
## Syntax | ||
|
||
``` | ||
INCRBY key delta | ||
``` | ||
|
||
## Parameters | ||
|
||
| Parameter | Description | Type | Required | | ||
|-----------|---------------------------------------------------------------------------------------------------------------|---------|----------| | ||
| `key` | The key whose value you want to increment. This key must hold a string that can be represented as an integer. | String | Yes | | ||
|`delta` | The integer value by which the key's value should be increased. This value can be positive or negative. | String | Yes | | ||
|
||
|
||
## Return values | ||
|
||
| Condition | Return Value | | ||
|--------------------------------------------------|------------------------------------------------------------------| | ||
| Key exists and holds an integer string | `(integer)` The value of the key after incrementing by delta. | | ||
| Key does not exist | `(integer)` delta | | ||
|
||
|
||
## Behaviour | ||
When the `INCRBY` command is executed, the following steps occur: | ||
|
||
- DiceDB checks if the key exists. | ||
- If the key does not exist, DiceDB treats the key's value as 0 before performing the increment operation. | ||
- If the key exists but does not hold a string that can be represented as an integer, an error is returned. | ||
- The value of the key is incremented by the specified increment value. | ||
- The new value of the key is returned. | ||
## Errors | ||
|
||
The `INCRBY` command can raise errors in the following scenarios: | ||
|
||
1. `Wrong Type Error`: | ||
|
||
- Error Message: `ERR value is not an integer or out of range` | ||
- This error occurs if the increment value provided is not a valid integer. | ||
- This error occurs if the key exists but its value is not a string that can be represented as an integer | ||
|
||
2. `Syntax Error`: | ||
|
||
- Error Message: `ERR wrong number of arguments for 'incrby' command` | ||
- Occurs if the command is called without the required parameter. | ||
|
||
3. `Overflow Error`: | ||
|
||
- Error Message: `ERR increment or decrement would overflow` | ||
- If the increment operation causes the value to exceed the maximum integer value that DiceDB can handle, an overflow error will occur. | ||
|
||
|
||
## Examples | ||
|
||
### Example with Incrementing the Value of an Existing Key | ||
|
||
|
||
```bash | ||
127.0.0.1:7379>SET mycounter 10 | ||
OK | ||
127.0.0.1:7379>INCRBY mycounter 3 | ||
(integer)13 | ||
``` | ||
`Explanation:` | ||
|
||
- In this example, the value of `mycounter` is set to 10 | ||
- The `INCRBY` command incremented `mycounter` by 3, resulting in a new value of 13. | ||
|
||
### Example with Incrementing a Non-Existent Key (Implicit Initialization to 0) | ||
|
||
```bash | ||
127.0.0.1:7379>INCRBY newcounter 5 | ||
(integer)5 | ||
``` | ||
`Explanation:` | ||
- In this example, since `newcounter` does not exist, DiceDB treats its value as 0 and increments it by 5, resulting in a new value of 5. | ||
### Example with Error Due to Non-Integer Value in Key | ||
|
||
```bash | ||
127.0.0.1:7379>SET mystring "hello" | ||
OK | ||
127.0.0.1:7379>INCRBY mystring 2 | ||
(error) ERR value is not an integer or out of range | ||
``` | ||
`Explanation:` | ||
- In this example, the key `mystring` holds a non-integer value, so the `INCRBY` command returns an error. | ||
|
||
### Example with Error Due to Invalid Increment Value (Non-Integer Decrement) | ||
|
||
```bash | ||
127.0.0.1:7379>INCRBY mycounter "two" | ||
(error) ERR value is not an integer or out of range | ||
``` | ||
|
||
`Explanation:` | ||
- In this example, the increment value "two" is not a valid integer, so the `INCRBY` command returns an error. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
--- | ||
title: INCRBYFLOAT | ||
description: The `INCRBYFLOAT` command in DiceDB is used to increment the numeric value of a key by a fractional amount. This command is useful for scenarios where you need to increase a number by a fractional amount. | ||
--- | ||
|
||
The `INCRBYFLOAT` command in DiceDB is used to increment the numeric value of a key by a fractional amount. This command is useful for scenarios where you need to increase a number by a fractional amount. | ||
|
||
## Syntax | ||
|
||
``` | ||
INCRBYFLOAT key delta | ||
``` | ||
|
||
## Parameters | ||
|
||
| Parameter | Description | Type | Required | | ||
|-----------|---------------------------------------------------------------------------------------------------------------|---------|----------| | ||
| `key` | The key whose value you want to increment. This key must hold a string that can be represented as an number. | String | Yes | | ||
|`delta` | The fractional value by which the key's value should be increased. This value can be positive or negative. | String | Yes | | ||
|
||
|
||
## Return values | ||
|
||
| Condition | Return Value | | ||
|--------------------------------------------------|------------------------------------------------------------------| | ||
| Key exists and holds an numeric string | `(float)` The value of the key after incrementing by delta. | | ||
| Key does not exist | `(float)` delta | | ||
|
||
|
||
## Behaviour | ||
When the `INCRBYFLOAT` command is executed, the following steps occur: | ||
|
||
- DiceDB checks if the key exists. | ||
- If the key does not exist, DiceDB treats the key's value as 0 before performing the increment operation. | ||
- If the key exists but does not hold a string that can be represented as an number, an error is returned. | ||
- The value of the key is incremented by the specified increment value. | ||
- The new value of the key is returned. | ||
## Errors | ||
|
||
The `INCRBYFLOAT` command can raise errors in the following scenarios: | ||
|
||
1. `Wrong Type Error`: | ||
|
||
- Error Message: `ERR value is not a valid float` | ||
- This error occurs if the increment value provided is not a valid number. | ||
- This error occurs if the key exists but its value is not a string that can be represented as an number | ||
|
||
2. `Syntax Error`: | ||
|
||
- Error Message: `ERR wrong number of arguments for 'incrbyfloat' command` | ||
- Occurs if the command is called without the required parameter. | ||
|
||
3. `Overflow Error`: | ||
|
||
- Error Message: `(error) ERR value is out of range` | ||
- If the increment operation causes the value to exceed the maximum float value that DiceDB can handle, an overflow error will occur. | ||
|
||
|
||
## Examples | ||
|
||
### Example with Incrementing the Value of an Existing Key | ||
|
||
|
||
```bash | ||
127.0.0.1:7379>SET mycounter 10 | ||
OK | ||
127.0.0.1:7379>INCRBYFLOAT mycounter 3.4 | ||
"13.4" | ||
``` | ||
`Explanation:` | ||
|
||
- In this example, the value of `mycounter` is set to 10 | ||
- The `INCRBYFLOAT` command incremented `mycounter` by 3.4, resulting in a new value of 13.4 | ||
|
||
### Example with Incrementing a Non-Existent Key (Implicit Initialization to 0) | ||
|
||
```bash | ||
127.0.0.1:7379>INCRBYFLOAT newcounter 5.3 | ||
"5.3" | ||
``` | ||
`Explanation:` | ||
- In this example, since `newcounter` does not exist, DiceDB treats its value as 0 and increments it by 5.3, resulting in a new value of 5.3. | ||
### Example with Error Due to Wrong Value in Key | ||
|
||
```bash | ||
127.0.0.1:7379>SET mystring "hello" | ||
OK | ||
127.0.0.1:7379>INCRBYFLOAT mystring 2.3 | ||
(error) ERR value is not a valid float | ||
``` | ||
`Explanation:` | ||
- In this example, the key `mystring` holds a string value, so the `INCRBYFLOAT` command returns an error. | ||
|
||
### Example with Error Due to Invalid Increment Value (Non-Integer Decrement) | ||
|
||
```bash | ||
127.0.0.1:7379>INCRBYFLOAT mycounter "two" | ||
(error) ERR value is not a valid float | ||
``` | ||
|
||
`Explanation:` | ||
- In this example, the increment value "two" is not a valid number, so the `INCRBYFLOAT` command returns an error. | ||
|
||
|
Oops, something went wrong.