11---
2- Title : Redis modules on Kubernetes
2+ Title : Configure modules
33alwaysopen : false
44categories :
55- docs
66- operate
77- kubernetes
88description : Deploy Redis Enterprise databases with modules using the Redis Enterprise operator for Kubernetes.
9- linkTitle : Redis modules
9+ linkTitle : Configure modules
1010weight : 15
1111---
1212
@@ -31,7 +31,7 @@ Redis Enterprise includes several built-in modules:
3131- ** RedisGraph** (` graph ` ) - Graph database capabilities
3232- ** RedisGears** (` rg ` ) - Programmable data processing engine
3333
34- ## Check available modules
34+ ### Check available modules
3535
3636Before configuring databases with modules, check which modules are available in your cluster:
3737
@@ -66,151 +66,98 @@ If you need to install additional modules or specific versions, upload them usin
6666 https://localhost:9443/v2/modules
6767 ```
6868
69- ## Configure databases with modules
69+ ## Module configuration
7070
71- ### Basic database with modules
71+ #### Module parameters
7272
73- The following example shows a ` RedisEnterpriseDatabase ` with modules :
73+ Each module in the [ ` modulesList ` ] ({{< relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#specmoduleslist" >}}) supports the following fields :
7474
75- ``` yaml
76- apiVersion : app.redislabs.com/v1alpha1
77- kind : RedisEnterpriseDatabase
78- metadata :
79- name : search-db
80- labels :
81- app : redis-enterprise
82- spec :
83- redisEnterpriseCluster :
84- name : rec
85- memorySize : 1GB
86- shardCount : 1
87- replication : false
88-
89- # Configure modules
90- modulesList :
91- - name : search
92- config : " MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 10000"
93- - name : ReJSON
94- ` ` `
75+ - ** name** (required): The module name (for example, "search", "ReJSON")
76+ - ** version** (optional for REDB, required for REAADB): Specific module version
77+ - ** config** (optional): Module-specific configuration parameters
9578
96- ### Database with multiple modules
79+ #### Common module configurations
9780
98- The following example shows a database configured with multiple modules:
81+ ##### RediSearch
9982
10083``` yaml
101- apiVersion : app.redislabs.com/v1alpha1
102- kind : RedisEnterpriseDatabase
103- metadata :
104- name : multi-module-db
105- labels :
106- app : redis-enterprise
107- spec :
108- redisEnterpriseCluster :
109- name : rec
110- memorySize : 2GB
111- shardCount : 2
112- replication : true
113-
114- modulesList :
115- - name : search
116- config : " MAXSEARCHRESULTS 50000"
117- - name : ReJSON
118- - name : timeseries
119- config : " RETENTION_POLICY 86400000"
120- - name : bf
84+ modulesList :
85+ - name : search
86+ config : " MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 5000 TIMEOUT 500"
12187` ` `
12288
123- ### Active-Active database with modules
89+ ##### RedisTimeSeries
12490
125- For Active-Active databases, you must specify modules with explicit versions:
91+ ` ` ` yaml
92+ modulesList :
93+ - name : timeseries
94+ config : " RETENTION_POLICY 86400000 MAX_SAMPLE_PER_CHUNK 360"
95+ ` ` `
96+
97+ ##### RedisBloom
12698
12799` ` ` yaml
128- apiVersion : app.redislabs.com/v1alpha1
129- kind : RedisEnterpriseActiveActiveDatabase
130- metadata :
131- name : aa-search-db
132- labels :
133- app : redis-enterprise
134- spec :
135- participatingClusters :
136- - name : cluster-east
137- - name : cluster-west
138-
139- redisEnterpriseDatabase :
140- memorySize : 1GB
141- shardCount : 1
142- replication : true
143-
144- modulesList :
145- - name : search
146- version : " 2.8.4"
147- config : " MAXSEARCHRESULTS 10000"
148- - name : ReJSON
149- version : " 2.6.6"
100+ modulesList :
101+ - name : bf
102+ config : " ERROR_RATE 0.01 INITIAL_SIZE 1000"
150103` ` `
151104
152- ## Module configuration
105+ ## Upgrade considerations
153106
154- ### Module parameters
107+ When upgrading Redis Enterprise clusters or the operator with modules, follow these guidelines:
155108
156- Each module in the ` modulesList` supports the following fields:
109+ #### Pre-upgrade planning
157110
158- - **name** (required): The module name (for example, "search", "ReJSON")
159- - **version** (optional for REDB, required for REAADB): Specific module version
160- - **config** (optional): Module-specific configuration parameters
111+ - **Check module compatibility**: Verify that your current module versions are compatible with the target Redis Enterprise version
112+ - **Review module dependencies**: Some modules may have specific version requirements or dependencies
113+ - **Document current configurations**: Record all module versions and configurations before upgrading
114+ - **Test in non-production**: Always test module upgrades in a development or staging environment first
161115
162- # ## Common module configurations
116+ #### Module version management during upgrades
163117
164- # ### RediSearch
118+ - **Upload required modules**: Ensure all necessary module versions are uploaded to the cluster before upgrading
119+ - **Version pinning**: For Active-Active databases, explicitly specify module versions to prevent automatic updates
120+ - **Compatibility matrices**: Consult the Redis Enterprise documentation for module compatibility matrices
165121
166- ` ` ` yaml
167- - name: search
168- config: "MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 5000 TIMEOUT 500"
169- ` ` `
122+ #### Upgrade sequence
170123
171- # ### RedisTimeSeries
124+ 1. **Upload new module versions** (if required) to the cluster before upgrading Redis Enterprise
125+ 2. **Upgrade the Redis Enterprise cluster** following standard upgrade procedures
126+ 3. **Verify module functionality** after the cluster upgrade completes
127+ 4. **Update database configurations** if new module versions require configuration changes
172128
173- ` ` ` yaml
174- - name: timeseries
175- config: "RETENTION_POLICY 86400000 MAX_SAMPLE_PER_CHUNK 360"
176- ` ` `
129+ #### Post-upgrade verification
177130
178- # ### RedisBloom
131+ - **Check module status**: Verify all modules are loaded correctly: ` kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'`
132+ - **Test module functionality**: Validate that module-specific commands and features work as expected
133+ - **Monitor performance**: Watch for any performance changes after the upgrade
134+ - **Update documentation**: Record the new module versions and any configuration changes
179135
180- ` ` ` yaml
181- - name: bf
182- config: "ERROR_RATE 0.01 INITIAL_SIZE 1000"
183- ` ` `
136+ For detailed upgrade procedures, see [Upgrade Redis Enterprise clusters]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}).
184137
185138# # Best practices
186139
187- # ## Module version management
140+ # ### Module version management
188141
189142- For production environments, specify explicit module versions in Active-Active databases
190143- Use the cluster's available modules list to ensure compatibility
191144- Test module upgrades in non-production environments first
192145
193- # ## Resource planning
146+ # ### Resource planning
194147
195148- Modules consume additional memory and CPU resources
196149- Plan cluster resources accordingly when using multiple modules
197150- Monitor module-specific metrics and performance
198151
199- # ## Configuration management
152+ # ### Configuration management
200153
201154- Use module configuration parameters to optimize performance
202155- Document module configurations for consistency across environments
203156- Consider module-specific backup and recovery requirements
204157
205- # ## Upgrade considerations
206-
207- - Ensure compatible module versions before cluster upgrades
208- - Upload required module versions before upgrading the cluster
209- - Review module compatibility matrices in Redis Enterprise documentation
210-
211158# # Troubleshooting
212159
213- # ## Common issues
160+ # ### Common issues
214161
2151621. **Module not available error:**
216163 - Check if the module is installed : ` kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'`
@@ -224,7 +171,7 @@ Each module in the `modulesList` supports the following fields:
224171 - Validate module configuration parameters
225172 - Check Redis Enterprise logs for specific error messages
226173
227- # ## Debugging commands
174+ # ### Debugging commands
228175
229176` ` ` bash
230177# Check cluster status and available modules
@@ -240,13 +187,6 @@ kubectl logs -l name=redis-enterprise-operator
240187kubectl logs <cluster-pod-name>
241188` ` `
242189
243- # # Examples
244-
245- See the `deploy/examples/` directory for additional configuration examples :
246-
247- - Basic database : ` deploy/examples/v1alpha1/redb.yaml`
248- - Active-Active database : ` deploy/examples/v1alpha1/reaadb.yaml`
249-
250190# # Related information
251191
252192- [Database controller]({{< relref "/operate/kubernetes/re-databases/db-controller" >}}) - Learn how to create and manage Redis Enterprise databases
0 commit comments