Supported Platforms
| Platform | Support |
|---|---|
| Self-hosted Redis | 6.x, 7.x (vanilla and Redis Stack) |
| Upstash Redis | All plan tiers |
| Redis Cloud | All plan tiers |
Setup
Select your Redis platform for specific connection instructions:- Self-hosted Redis
- Upstash Redis
- Redis Cloud
Two common deployment shapes are supported:
- Vanilla Redis — minimal image, no modules. Use this when you only need core Redis commands.
- Redis Stack — bundles RediSearch, RedisJSON, RedisTimeSeries, and Bloom. Use this when Tony needs
FT.*,JSON.*,TS.*, orBF.*commands. Vanilla soft-fails those.
Start Redis
Vanilla Redis (no modules):Verify the instance:
- The admin password is set via the
--requirepassserver flag (theREDIS_ARGSenv var only works on Redis Stack). --appendonly yesenables AOF for durability across restarts.
Create Read-Only ACL User
Create a dedicated user for CloudThinker. Redis ACL usernames allow
[A-Za-z0-9_-]; use cloudthinker-readonly (hyphen is the convention in Redis docs).on— enable the user.><readonly-password>— set the password (the>prefix is ACL syntax, your password follows).~*— match all keys. Narrow to~app:*for stricter scoping.+@read -@write -@dangerous -@admin— reads only; blocks writes,FLUSHALL/CONFIG/DEBUG/SHUTDOWN, and replication.- Optional stricter lockdown: append
-@slowto blockKEYS,SMEMBERS,HGETALLon huge collections.
Persist ACLs Across Restart
Mount a Start Redis with the file mounted:and add
users.acl file so ACLs survive container restarts:--aclfile /data/users.acl to the server command.Configure Network Access
Ensure CloudThinker can reach your database:
- Add CloudThinker IPs to your firewall or security group.
- Ensure Redis is bound to an accessible interface (avoid
bind 127.0.0.1only).
Get Connection String
Your connection string follows this format:Use
rediss:// (note the second s) if your deployment terminates TLS.Required Permissions
Recommended ACL categories for the CloudThinker user:| Category | Setting | Why |
|---|---|---|
+@read | Allow | Read keys, run INFO, CLIENT LIST, etc. |
-@write | Deny | Block SET, DEL, and other mutating commands. |
-@dangerous | Deny | Block FLUSHALL, CONFIG, DEBUG, SHUTDOWN, replication. |
-@admin | Deny | Block administrative commands. |
-@slow (optional) | Deny | Block KEYS, SMEMBERS, HGETALL on large collections. |
~* for all keys, or ~app:* for a prefix) should match your data model.
Agent Capabilities
Once connected, Tony can:| Capability | Description |
|---|---|
| Keyspace Analysis | Inspect key patterns, sizes, and TTL distributions |
| Command Stats | Review command latency and throughput via INFO commandstats |
| Performance Metrics | Monitor memory, connections, eviction, and replication lag |
| Module Insights | Inspect RediSearch indexes, RedisJSON documents, and TimeSeries (Redis Stack only) |
Example Prompts
Connection Options
| Option | Description | Default |
|---|---|---|
| TLS/SSL | Use rediss:// to require TLS | rediss:// for Upstash, optional elsewhere |
| Port | Redis port | 6379 (self-hosted, Upstash); 13xxx (Redis Cloud) |
| Database Index | Logical DB index | 0 |
Troubleshooting
Authentication failed (NOAUTH / WRONGPASS)
Authentication failed (NOAUTH / WRONGPASS)
- Verify the username and password in the connection URL.
- For self-hosted, confirm the user is enabled with
ACL WHOAMIandACL LIST. - For Upstash and Redis Cloud, make sure you copied the TCP/Redis CLI URL, not the REST or SDK URL.
NOPERM ... has no permissions to run the command
NOPERM ... has no permissions to run the command
- The read-only user is working as intended for write commands.
- If reads are also blocked, re-check the ACL rules —
+@readmust be granted.
Connection refused or timeout
Connection refused or timeout
- Verify host and port are reachable from CloudThinker.
- For self-hosted, ensure Redis is not bound only to
127.0.0.1. - Add CloudThinker IPs to your firewall or cloud provider allowlist.
Module commands fail (FT.*, JSON.*, TS.*, BF.*)
Module commands fail (FT.*, JSON.*, TS.*, BF.*)
- Vanilla Redis does not include modules. Run Redis Stack (
redis/redis-stack) or a managed equivalent.
Security Best Practices
- Strong passwords — Use complex, unique passwords for both the admin and CloudThinker user.
- TLS encryption — Use
rediss://whenever the deployment supports TLS. - Network restrictions — Restrict access to CloudThinker IPs via firewall rules or managed-service allowlists.
- Minimal permissions — Never grant
+@write,+@dangerous, or+@adminto the CloudThinker user. - Persist ACLs — Use
aclfilefor self-hosted deployments so the read-only user survives restarts.
Related
Tony Agent
Database-focused optimization agent
MongoDB Connection
Setup instructions for MongoDB databases