Skip to content

Commit d89c679

Browse files
committed
Merge branch 'main' into preview-rc-rdi
2 parents 0d10d41 + 08c7156 commit d89c679

File tree

120 files changed

+6497
-25582
lines changed

Some content is hidden

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

120 files changed

+6497
-25582
lines changed

.github/workflows/main-staging.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ jobs:
6666
rs_versions=($(find content/operate/rs/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
6767
rdi_versions=($(find content/integrate/redis-data-integration/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
6868
69+
printf "%s\n" "${kubernetes_versions[@]}" > kubernetes-versions
70+
printf "%s\n" "${rs_versions[@]}" > rs-versions
71+
printf "%s\n" "${rdi_versions[@]}" > rdi-versions
72+
6973
# build latest
7074
for version in "${kubernetes_versions[@]}"; do
7175
rm -r "content/operate/kubernetes/${version}"

.github/workflows/main.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ jobs:
6666
rs_versions=($(find content/operate/rs/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
6767
rdi_versions=($(find content/integrate/redis-data-integration/ -maxdepth 1 -type d -regex ".*[0-9-]" | awk -F/ '{print $NF}'))
6868
69+
printf "%s\n" "${kubernetes_versions[@]}" > kubernetes-versions
70+
printf "%s\n" "${rs_versions[@]}" > rs-versions
71+
printf "%s\n" "${rdi_versions[@]}" > rdi-versions
72+
6973
# build latest
7074
for version in "${kubernetes_versions[@]}"; do
7175
rm -r "content/operate/kubernetes/${version}"

build/local_examples.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,24 @@ def get_client_name_from_language(language: str) -> str:
5151
return LANGUAGE_TO_CLIENT.get(language, language.title())
5252

5353

54+
def get_client_name_from_language_and_path(language: str, path: str) -> str:
55+
"""Get client name from language with path-based overrides.
56+
57+
For Java (.java) files, override based on path substrings:
58+
- If 'lettuce-async' in path -> Java-Async
59+
- If 'lettuce-reactive' in path -> Java-Reactive
60+
61+
Substring checks are case-sensitive and can appear anywhere in the path.
62+
"""
63+
if language == 'java':
64+
if 'lettuce-async' in path:
65+
return 'Java-Async'
66+
if 'lettuce-reactive' in path:
67+
return 'Java-Reactive'
68+
# Default behavior for all languages (and Java fallback)
69+
return get_client_name_from_language(language)
70+
71+
5472
def get_example_id_from_file(path: str) -> str:
5573
"""Extract example ID from the first line of a file."""
5674
try:
@@ -136,8 +154,8 @@ def process_local_examples(local_examples_dir: str = 'local_examples',
136154
# Process with Example class
137155
example = Example(language, target_file)
138156

139-
# Get client name
140-
client_name = get_client_name_from_language(language)
157+
# Get client name (with Java path-based overrides)
158+
client_name = get_client_name_from_language_and_path(language, source_file)
141159

142160
# Create metadata
143161
example_metadata = {

build/version_archiver.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ def __init__(self, product, version):
88

99
if self.product in ("kubernetes", "rs"):
1010
self.prefix = "operate"
11-
else:
11+
elif self.product in ("redis-data-integration"):
1212
self.prefix = "integrate"
13+
elif self.product in ("redisvl"):
14+
self.prefix = "develop/ai"
1315
self.new_directory = os.path.join("content",self.prefix,self.product,self.new_version)
1416
self.latest = os.path.join("content",self.prefix,self.product)
1517

@@ -179,9 +181,9 @@ def inject_url_frontmatter(self):
179181

180182
def validate_product(value):
181183
"""Custom validator for product argument to allow only 'rs' or 'kubernetes'"""
182-
if value not in ["rs", "kubernetes", "redis-data-integration"]:
184+
if value not in ["rs", "kubernetes", "redis-data-integration", "redisvl"]:
183185
raise argparse.ArgumentTypeError(
184-
"Product must be either 'rs' or 'kubernetes' or 'redis-data-integration'."
186+
"Product must be either 'rs' or 'kubernetes' or 'redis-data-integration' or 'redisvl'. "
185187
)
186188
return value
187189

@@ -204,16 +206,24 @@ def validate_version(value):
204206
parser.add_argument(
205207
"product",
206208
type=validate_product,
207-
help="The name of the product (e.g., rs, kubernetes, redis-data-integration)",
209+
help="The name of the product (e.g., rs, kubernetes, redis-data-integration, redisvl)",
208210
)
209211
parser.add_argument(
210212
"version",
211213
type=validate_version,
212214
help="The release version (e.g., 7, 7.1, 7.1.11)",
213215
)
216+
parser.add_argument(
217+
"--skip-archive",
218+
action="store_true",
219+
default=False,
220+
help="Only update relrefs and inject URL frontmatter"
221+
)
214222
args = parser.parse_args()
215223

216224
r = VersionArchiver(args.product, args.version)
217-
r.archive_version()
225+
if not args.skip_archive:
226+
r.archive_version()
227+
218228
r.version_relrefs()
219229
r.inject_url_frontmatter()

config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ rdi_redis_gears_version = "1.2.6"
5555
rdi_debezium_server_version = "2.3.0.Final"
5656
rdi_db_types = "cassandra|mysql|oracle|postgresql|sqlserver"
5757
rdi_cli_latest = "latest"
58-
rdi_current_version = "1.12.3"
58+
rdi_current_version = "1.14.0"
5959

6060
[params.clientsConfig]
6161
"Python"={quickstartSlug="redis-py"}

content/commands/info.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -551,14 +551,14 @@ _Redis Query Engine fields_
551551
* `search_fields_geoshape_Sortable`: The total number of `SORTABLE GEOSHAPE` fields across all indexes in the shard. This field appears only if its value is larger than 0. <sup>[2](#tnote-2)</sup>
552552
* `search_fields_geoshape_NoIndex`: The total number of `NOINDEX GEOSHAPE` fields across all indexes in the shard; i.e., used for sorting only but not indexed. This field appears only if its value is larger than 0. <sup>[2](#tnote-2)</sup>
553553
* `search_fields_<field>_IndexErrors`: The total number of indexing failures caused by attempts to index a document containing <field> field. <sup>[1](#tnote-1)</sup>
554-
* `search_used_memory_indexes`: The total memory allocated by all indexes in the shard in bytes. <sup>[1](#tnote-1)</sup>
555-
* `search_used_memory_indexes_human`: The total memory allocated by all indexes in the shard in MB. <sup>[1](#tnote-1)</sup>
556-
* `search_smallest_memory_index`: The memory usage of the index with the smallest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
557-
* `search_smallest_memory_index_human`: The memory usage of the index with the smallest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
558-
* `search_largest_memory_index`: The memory usage of the index with the largest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
559-
* `search_largest_memory_index_human`: The memory usage of the index with the largest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
560-
* `search_total_indexing_time`: The total time spent on indexing operations, excluding the background indexing of vectors in the HNSW graph. <sup>[1](#tnote-1)</sup>
561554
* `search_used_memory_vector_index`: The total memory usage of all vector indexes in the shard. <sup>[1](#tnote-1)</sup>
555+
* `search_used_memory_indexes`: The estimated total memory allocated by all indexes in the shard in bytes (including vector indexes memory accounted in `search_used_memory_vector_index`). <sup>[1](#tnote-1)</sup>
556+
* `search_used_memory_indexes_human`: The estimated total memory allocated by all indexes in the shard in MB. <sup>[1](#tnote-1)</sup>
557+
* `search_smallest_memory_index`: The estimated memory usage of the index with the smallest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
558+
* `search_smallest_memory_index_human`: The estimated memory usage of the index with the smallest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
559+
* `search_largest_memory_index`: The estimated memory usage of the index with the largest memory usage in the shard in bytes. <sup>[1](#tnote-1)</sup>
560+
* `search_largest_memory_index_human`: The estimated memory usage of the index with the largest memory usage in the shard in MB. <sup>[1](#tnote-1)</sup>
561+
* `search_total_indexing_time`: The total time spent on indexing operations, excluding the background indexing of vectors in the HNSW graph. <sup>[1](#tnote-1)</sup>
562562
* `search_bytes_collected`: The total amount of memory freed by the garbage collectors from indexes in the shard memory in bytes. <sup>[1](#tnote-1)</sup>
563563
* `search_total_cycles`: The total number of garbage collection cycles executed. <sup>[1](#tnote-1)</sup>
564564
* `search_total_ms_run`: The total duration of all garbage collection cycles in the shard, measured in milliseconds. <sup>[1](#tnote-1)</sup>

content/commands/set.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -180,18 +180,20 @@ The script should be called with `EVAL ...script... 1 resource-name token-value`
180180
tab1="RESP2"
181181
tab2="RESP3" >}}
182182

183-
Any of the following:
184-
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): `GET` not given: Operation was aborted (conflict with one of the `XX`/`NX` options).
185-
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`. `GET` not given: The key was set.
186-
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): `GET` given: The key didn't exist before the `SET`.
187-
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): `GET` given: The previous value of the key.
183+
* If `GET` was not specified, any of the following:
184+
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): Operation was aborted (conflict with one of the `XX`/`NX` options). The key was not set.
185+
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`: The key was set.
186+
* If `GET` was specified, any of the following:
187+
* [Nil reply](../../develop/reference/protocol-spec#bulk-strings): The key didn't exist before the `SET`. If `XX` was specified, the key was not set. Otherwise, the key was set.
188+
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): The previous value of the key. If `NX` was specified, the key was not set. Otherwise, the key was set.
188189

189190
-tab-sep-
190191

191-
Any of the following:
192-
* [Null reply](../../develop/reference/protocol-spec#nulls): `GET` not given: Operation was aborted (conflict with one of the `XX`/`NX` options).
193-
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`. `GET` not given: The key was set.
194-
* [Null reply](../../develop/reference/protocol-spec#nulls): `GET` given: The key didn't exist before the `SET`.
195-
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): `GET` given: The previous value of the key.
192+
* If `GET` was not specified, any of the following:
193+
* [Null reply](../../develop/reference/protocol-spec#nulls): Operation was aborted (conflict with one of the `XX`/`NX` options). The key was not set.
194+
* [Simple string reply](../../develop/reference/protocol-spec#simple-strings): `OK`: The key was set.
195+
* If `GET` was specified, any of the following:
196+
* [Null reply](../../develop/reference/protocol-spec#nulls): The key didn't exist before the `SET`. If `XX` was specified, the key was not set. Otherwise, the key was set.
197+
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings): The previous value of the key. If `NX` was specified, the key was not set. Otherwise, the key was set.
196198

197199
{{< /multitabs >}}

content/commands/vadd.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ is the name of the key that will hold the vector set data.
3838
<details open>
3939
<summary><code>FP32 vector or VALUES num vector</code></summary>
4040

41-
either a 32-bit floating point (FP32) blob of values or `num` floating point numbers as strings.
41+
either a 32-bit floating point (FP32) blob of values or `num` floating point numbers as strings. When using the FP32 format, the blob must use little-endian encoding. On platforms with different endianness, you should either manually adjust the byte order or use the VALUES syntax instead.
4242
</details>
4343

4444
<details open>

content/commands/vemb.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ One of the following:
8282
* [Array reply](../../develop/reference/protocol-spec#arrays): consisting of the following elements:
8383
1. The quantization type as a [simple string](../../develop/reference/protocol-spec#simple-strings): `fp32`, `bin`, or `q8`.
8484
1. A [bulk string](../../develop/reference/protocol-spec#bulk-strings) blob with the following raw data:
85-
* 4-byte floats for fp32
85+
* 4-byte floats for fp32 (little-endian encoding)
8686
* A bitmap for binary quantization
8787
* A byte array for q8
8888
1. The L2 norm, as a [simple string](../../develop/reference/protocol-spec#simple-strings), of the vector before normalization.
@@ -95,7 +95,7 @@ One of the following:
9595
* [Array reply](../../develop/reference/protocol-spec#arrays): consisting of the following elements:
9696
1. The quantization type as a [simple string](../../develop/reference/protocol-spec#simple-strings): `fp32`, `bin`, or `q8`.
9797
1. A [bulk string](../../develop/reference/protocol-spec#bulk-strings) blob with the following raw data:
98-
* 4-byte floats for fp32
98+
* 4-byte floats for fp32 (little-endian encoding)
9999
* A bitmap for binary quantization
100100
* A byte array for q8
101101
1. The [double](../../develop/reference/protocol-spec#doubles) L2 norm of the vector before normalization.

content/commands/vlinks.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,16 @@ includes similarity scores for each neighbor.
6666
tab2="RESP3" >}}
6767

6868
One of the following:
69-
* [Array reply](../../develop/reference/protocol-spec#arrays) containing the names of adjacent elements as [strings](../../develop/reference/protocol-spec#simple-strings); interleved with scores when using the WITHSCORES option.
69+
* An [array](../../develop/reference/protocol-spec#arrays) of [array replies](../../develop/reference/protocol-spec#arrays) containing the names of adjacent elements as [bulk strings](../../develop/reference/protocol-spec#bulk-strings); interleaved with scores as [bulk strings](../../develop/reference/protocol-spec#bulk-strings) when used with the `WITHSCORES` option.
70+
* [Simple error reply](../../develop/reference/protocol-spec/#simple-errors) for incorrect syntax.
7071
* [Bulk string reply](../../develop/reference/protocol-spec#bulk-strings) (null bulk string) for unknown keys and/or elements.
7172

7273
-tab-sep-
7374

7475
One of the following:
75-
* [Array reply](../../develop/reference/protocol-spec#arrays) containing the names of adjacent elements as [strings](../../develop/reference/protocol-spec#simple-strings) when used without the WITHSCORES option.
76-
* [Map reply](../../develop/reference/protocol-spec#maps) containing the names of adjecent elements as [strings](../../develop/reference/protocol-spec#simple-strings), together with their scores as [doubles](../../develop/reference/protocol-spec#doubles) when used with the WITHSCORES option.
76+
* An [array](../../develop/reference/protocol-spec#arrays) of [array replies](../../develop/reference/protocol-spec#arrays) containing the names of adjacent elements as [bulk strings](../../develop/reference/protocol-spec#bulk-strings) when used without the `WITHSCORES` option.
77+
* An [array](../../develop/reference/protocol-spec#arrays) of [map replies](../../develop/reference/protocol-spec#maps) containing the names of adjecent elements as [bulk strings](../../develop/reference/protocol-spec#bulk-strings), together with their scores as [doubles](../../develop/reference/protocol-spec#doubles) when used with the `WITHSCORES` option.
78+
* [Simple error reply](../../develop/reference/protocol-spec/#simple-errors) for incorrect syntax.
7779
* [Null reply](../../develop/reference/protocol-spec#nulls) for unknown keys and/or elements.
7880

7981
{{< /multitabs >}}

0 commit comments

Comments
 (0)