Skip to content

Commit 68920a1

Browse files
committed
Merge upstream PR redis#3355 into feature/docker-support
ROS 8.8 release docs: new Arrays data type, INCREX/XNACK/XIDMPRECORD commands, FT.AGGREGATE COLLECT reducer, and 8.8 release notes.
2 parents cd5ad8c + ad12d9c commit 68920a1

123 files changed

Lines changed: 27209 additions & 10440 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build/generate_version_commands_page.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
('sorted-set', 'Sorted set commands'),
2121
('stream', 'Stream commands'),
2222
('bitmap', 'Bitmap commands'),
23+
('array', 'Array commands'),
2324
('hyperloglog', 'HyperLogLog commands'),
2425
('geo', 'Geospatial commands'),
2526
('json', 'JSON commands'),
@@ -196,6 +197,7 @@ def generate_page_content(commands_by_group, target_version):
196197
'sorted-set': 'Sorted set commands operate on sets of unique strings ordered by a score.',
197198
'stream': 'Stream commands operate on append-only log data structures.',
198199
'bitmap': 'Bitmap commands operate on strings as arrays of bits.',
200+
'array': 'Array commands operate on arrays of strings.',
199201
'hyperloglog': 'HyperLogLog commands provide probabilistic cardinality estimation.',
200202
'geo': 'Geospatial commands operate on geographic coordinates.',
201203
'json': 'JSON commands operate on JSON data structures.',

content/commands/acl-load.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ sure to have an *all or nothing* behavior, that is:
3838
* If every line in the file is valid, all the ACLs are loaded.
3939
* If one or more line in the file is not valid, nothing is loaded, and the old ACL rules defined in the server memory continue to be used.
4040

41+
Starting with Redis 8.8, your ACL file is allowed to have comment lines; lines that begin with the `#` character.
42+
Any such comment lines are stripped when the ACL file is loaded and they are not persisted across `ACL LOAD`/`ACL SAVE` commands.
43+
Make sure you save a backup of your ACL file. This is the only way to preserve comments.
44+
4145
## Examples
4246

4347
```

content/commands/arcount.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
---
2+
acl_categories:
3+
- '@array'
4+
arguments:
5+
- key_spec_index: 0
6+
name: key
7+
type: key
8+
arity: 2
9+
bannerText: Array is a new data type that is currently in preview and may be subject to change.
10+
categories:
11+
- docs
12+
- develop
13+
- oss
14+
- rs
15+
- rc
16+
- kubernetes
17+
- clients
18+
command_flags:
19+
- readonly
20+
- fast
21+
complexity: O(1)
22+
description: Returns the number of non-empty elements in an array.
23+
group: array
24+
hidden: false
25+
key_specs:
26+
- begin_search:
27+
index:
28+
pos: 1
29+
find_keys:
30+
range:
31+
lastkey: 0
32+
limit: 0
33+
step: 1
34+
flags:
35+
- ro
36+
- access
37+
linkTitle: ARCOUNT
38+
since: 8.8.0
39+
summary: Returns the number of non-empty elements in an array.
40+
syntax_fmt: ARCOUNT key
41+
title: ARCOUNT
42+
---
43+
Returns the number of non-empty elements in an array.
44+
45+
## Required arguments
46+
47+
<details open><summary><code>key</code></summary>
48+
49+
The name of the key that holds the array.
50+
51+
</details>
52+
53+
## Examples
54+
55+
{{% redis-cli %}}
56+
ARSET myarray 0 "a"
57+
ARSET myarray 5 "b"
58+
ARCOUNT myarray
59+
{{% /redis-cli %}}
60+
61+
## Return information
62+
63+
{{< multitabs id="return-info"
64+
tab1="RESP2"
65+
tab2="RESP3" >}}
66+
67+
[Integer reply](../../develop/reference/protocol-spec#integers): The number of non-empty elements, or 0 if key does not exist.
68+
69+
-tab-sep-
70+
71+
[Integer reply](../../develop/reference/protocol-spec#integers): The number of non-empty elements, or 0 if key does not exist.
72+
73+
{{< /multitabs >}}

content/commands/ardel.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
acl_categories:
3+
- ARRAY
4+
arguments:
5+
- key_spec_index: 0
6+
name: key
7+
type: key
8+
- multiple: true
9+
name: index
10+
type: integer
11+
arity: -3
12+
bannerText: Array is a new data type that is currently in preview and may be subject to change.
13+
categories:
14+
- docs
15+
- develop
16+
- stack
17+
- oss
18+
- rs
19+
- rc
20+
- oss
21+
- kubernetes
22+
- clients
23+
command_flags:
24+
- WRITE
25+
- FAST
26+
complexity: O(N) where N is the number of indices to delete
27+
description: Deletes elements at the specified indices in an array.
28+
function: ardelCommand
29+
group: array
30+
hidden: false
31+
key_specs:
32+
- begin_search:
33+
index:
34+
pos: 1
35+
find_keys:
36+
range:
37+
lastkey: 0
38+
limit: 0
39+
step: 1
40+
flags:
41+
- RW
42+
- DELETE
43+
linkTitle: ARDEL
44+
reply_schema:
45+
description: Number of elements deleted.
46+
type: integer
47+
since: 8.8.0
48+
summary: Deletes elements at the specified indices in an array.
49+
syntax_fmt: ARDEL key index [index ...]
50+
title: ARDEL
51+
---
52+
Deletes elements at the specified indices in an array.
53+
54+
## Required arguments
55+
56+
<details open><summary><code>key</code></summary>
57+
58+
The name of the key that holds the array.
59+
60+
</details>
61+
62+
<details open><summary><code>index</code></summary>
63+
64+
One or more zero-based integer indices of the elements to delete. Deleting an index that does not exist counts as zero elements deleted and does not modify the array.
65+
66+
</details>
67+
68+
## Examples
69+
70+
{{% redis-cli %}}
71+
ARSET myarray 0 "a"
72+
ARSET myarray 1 "b"
73+
ARSET myarray 2 "c"
74+
ARDEL myarray 1
75+
ARGET myarray 1
76+
ARDEL myarray 0 2
77+
ARCOUNT myarray
78+
{{% /redis-cli %}}
79+
80+
## Return information
81+
82+
{{< multitabs id="return-info"
83+
tab1="RESP2"
84+
tab2="RESP3" >}}
85+
86+
[Integer reply](../../develop/reference/protocol-spec#integers): Number of elements deleted.
87+
88+
-tab-sep-
89+
90+
[Integer reply](../../develop/reference/protocol-spec#integers): Number of elements deleted.
91+
92+
{{< /multitabs >}}

content/commands/ardelrange.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
acl_categories:
3+
- ARRAY
4+
arguments:
5+
- key_spec_index: 0
6+
name: key
7+
type: key
8+
- arguments:
9+
- name: start
10+
type: integer
11+
- name: end
12+
type: integer
13+
multiple: true
14+
name: range
15+
type: block
16+
arity: -4
17+
bannerText: Array is a new data type that is currently in preview and may be subject to change.
18+
categories:
19+
- docs
20+
- develop
21+
- stack
22+
- oss
23+
- rs
24+
- rc
25+
- oss
26+
- kubernetes
27+
- clients
28+
command_flags:
29+
- WRITE
30+
complexity: Proportional to the number of existing elements / slices touched, not
31+
to the numeric span of the requested ranges
32+
description: Deletes elements in one or more ranges.
33+
function: ardelrangeCommand
34+
group: array
35+
hidden: false
36+
key_specs:
37+
- begin_search:
38+
index:
39+
pos: 1
40+
find_keys:
41+
range:
42+
lastkey: 0
43+
limit: 0
44+
step: 1
45+
flags:
46+
- RW
47+
- DELETE
48+
linkTitle: ARDELRANGE
49+
reply_schema:
50+
description: Number of elements deleted.
51+
type: integer
52+
since: 8.8.0
53+
summary: Deletes elements in one or more ranges.
54+
syntax_fmt: ARDELRANGE key start end [start end ...]
55+
title: ARDELRANGE
56+
---
57+
Deletes elements in one or more ranges.
58+
59+
## Required arguments
60+
61+
<details open><summary><code>key</code></summary>
62+
63+
The name of the key that holds the array.
64+
65+
</details>
66+
67+
<details open><summary><code>range</code></summary>
68+
69+
One or more `start end` pairs, each defining an inclusive range of indices to delete. If `start` is greater than `end` for a given pair, the range is processed in ascending order regardless. Multiple pairs may overlap; each element is counted at most once.
70+
71+
</details>
72+
73+
## Examples
74+
75+
{{% redis-cli %}}
76+
ARMSET myarray 0 "a" 1 "b" 2 "c" 3 "d" 4 "e"
77+
ARDELRANGE myarray 1 3
78+
ARCOUNT myarray
79+
ARGET myarray 0
80+
ARGET myarray 4
81+
{{% /redis-cli %}}
82+
83+
## Return information
84+
85+
{{< multitabs id="return-info"
86+
tab1="RESP2"
87+
tab2="RESP3" >}}
88+
89+
[Integer reply](../../develop/reference/protocol-spec#integers): Number of elements deleted.
90+
91+
-tab-sep-
92+
93+
[Integer reply](../../develop/reference/protocol-spec#integers): Number of elements deleted.
94+
95+
{{< /multitabs >}}

content/commands/arget.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
acl_categories:
3+
- ARRAY
4+
arguments:
5+
- key_spec_index: 0
6+
name: key
7+
type: key
8+
- name: index
9+
type: integer
10+
arity: 3
11+
bannerText: Array is a new data type that is currently in preview and may be subject to change.
12+
categories:
13+
- docs
14+
- develop
15+
- stack
16+
- oss
17+
- rs
18+
- rc
19+
- oss
20+
- kubernetes
21+
- clients
22+
command_flags:
23+
- READONLY
24+
- FAST
25+
complexity: O(1)
26+
description: Gets the value at an index in an array.
27+
function: argetCommand
28+
group: array
29+
hidden: false
30+
key_specs:
31+
- begin_search:
32+
index:
33+
pos: 1
34+
find_keys:
35+
range:
36+
lastkey: 0
37+
limit: 0
38+
step: 1
39+
flags:
40+
- RO
41+
- ACCESS
42+
linkTitle: ARGET
43+
reply_schema:
44+
oneOf:
45+
- description: The value at the given index.
46+
type: string
47+
- description: Null reply if key or index does not exist.
48+
type: 'null'
49+
since: 8.8.0
50+
summary: Gets the value at an index in an array.
51+
syntax_fmt: ARGET key index
52+
title: ARGET
53+
---
54+
Gets the value at an index in an array.
55+
56+
## Required arguments
57+
58+
<details open><summary><code>key</code></summary>
59+
60+
The name of the key that holds the array.
61+
62+
</details>
63+
64+
<details open><summary><code>index</code></summary>
65+
66+
The zero-based integer index of the element to retrieve.
67+
68+
</details>
69+
70+
## Examples
71+
72+
{{% redis-cli %}}
73+
ARSET myarray 0 "hello"
74+
ARGET myarray 0
75+
ARGET myarray 1
76+
{{% /redis-cli %}}
77+
78+
## Return information
79+
80+
{{< multitabs id="return-info"
81+
tab1="RESP2"
82+
tab2="RESP3" >}}
83+
84+
One of the following:
85+
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): The value at the given index.
86+
* [Nil reply](../../develop/reference/protocol-spec#null-bulk-strings): Null reply if key or index does not exist.
87+
88+
-tab-sep-
89+
90+
One of the following:
91+
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): The value at the given index.
92+
* [Null reply](../../develop/reference/protocol-spec#nulls): Null reply if key or index does not exist.
93+
94+
{{< /multitabs >}}

0 commit comments

Comments
 (0)