7. Advanced Features
Support Package Automation
The killer feature
Before redisctl: 10+ Minutes
- SSH to cluster node (1 min)
- Run
rladmin cluster debug_info(2 min) - Find generated file (30 sec)
- SCP to local machine (1 min)
- Open Redis Support portal (1 min)
- Click through upload form (3 min)
- Wait for upload (2+ min)
With redisctl: 30 Seconds
# Generate, optimize, and upload in one command
redisctl enterprise support-package cluster \
--optimize \
--upload
Features:
- Automatic generation
- 20-30% compression with
--optimize - Direct upload to Redis Support (Files.com)
- Works from anywhere (no SSH)
Log Streaming
Real-time log following:
# Stream logs with auto-refresh
redisctl enterprise logs list --follow --interval 2
# With JMESPath filtering
redisctl enterprise logs list --follow \
-q "[?level=='error']"
License Management
# Check current license
redisctl enterprise license get
# Set new license
redisctl enterprise license set --key "license-string"
# View expiration
redisctl enterprise license get -q 'expiration_date'
JMESPath Queries
Powerful filtering and transformation:
# Extract specific fields
redisctl enterprise database list \
-q "[].{name:name,status:status,port:port}"
# Filter by condition
redisctl enterprise database list \
-q "[?status=='active' && memory_size > `1000000000`]"
# Aggregate data
redisctl enterprise database list \
-q "length([?status=='active'])"
# Sort results
redisctl enterprise database list \
-q "sort_by(@, &name)[].name"
Multiple Output Formats
# JSON for scripts
redisctl enterprise database list | jq
# YAML for configs
redisctl enterprise database get 1 -o yaml > db-config.yaml
# Table for humans
redisctl enterprise database list -o table
CI/CD Integration
Perfect for pipelines:
# Get status and fail if not active
DB_STATUS=$(redisctl enterprise database get 1 -o json -q 'status')
if [ "$DB_STATUS" != "active" ]; then
echo "Database not ready"
exit 1
fi
# Create database and wait
redisctl enterprise database create \
--name "ci-db-$BUILD_NUMBER" \
--memory-size "100MB" \
--wait
# Get connection endpoint
ENDPOINT=$(redisctl enterprise database get 1 \
-q 'endpoints[0].dns_name')
Async Operation Handling
No more manual polling:
# Old way: manual polling loop
TASK_ID=$(curl ... | jq -r '.taskId')
while true; do
STATUS=$(curl .../tasks/$TASK_ID | jq -r '.status')
[ "$STATUS" = "completed" ] && break
sleep 2
done
# New way: automatic with --wait
redisctl cloud database create ... --wait
Previous: 6. Workflows Layer
Next → 8. Library Architecture