Getting started
1. Create an instance
Sign in with Google or GitHub, open the dashboard and click New instance. Pick a name, an engine and a plan. The instance is usually ready in under a minute; the dashboard updates by itself.
2. Connection details
The instance page in the dashboard shows everything you need, with copy buttons:
| Host | inst-<id>.eu.kvnest.com |
|---|---|
| Port | 6380 |
| TLS | Required. Certificates are publicly trusted (Let's Encrypt), so no CA file is needed. |
| SNI | Required. Connect using the hostname, never an IP address; clients then send it automatically. |
| Username | default |
| Password | Generated per instance; shown in the dashboard. |
| URL | rediss://default:<password>@inst-<id>.eu.kvnest.com:6380 |
Note the double s in rediss://: it tells clients to use TLS. The examples in these docs read the URL from an environment variable:
export VALKEY_URL='rediss://default:<password>@inst-<id>.eu.kvnest.com:6380'3. Try it from your terminal
With redis-cli 6 or newer, or valkey-cli, which should answer PONG. Either works with either engine:
redis-cli --tls --sni inst-<id>.eu.kvnest.com \ -u 'rediss://default:<password>@inst-<id>.eu.kvnest.com:6380' PINGvalkey-cli --tls --sni inst-<id>.eu.kvnest.com \ -h inst-<id>.eu.kvnest.com -p 6380 \ --user default --pass '<password>' PING4. Connect from your app
Pick your language for client libraries and framework integrations:
5. Automate it
Manage instances without the dashboard, with a personal API token:
Limits and behaviour
- Memory and connections follow your plan. Starter has 192 MB usable memory and up to 100 clients; keep connection pool sizes below that across all your app instances.
- Starter is a cache. It writes nothing to disk and, when full, evicts the least recently used keys (
allkeys-lru). Data is lost when the instance restarts. Don't use it as your only copy of anything, or for job queues. - Eviction policy defaults to the plan's and can be changed on the instance's Settings tab, for example to
noevictionso writes fail instead of dropping keys when memory is full. Changing it restarts the instance. - Modules: turn on JSON (
JSON.*), Bloom filters (BF.*) and Search (FT.*, including vector similarity search) when creating an instance or on its Settings tab; Redis instances also get TimeSeries (TS.*). Search indexes count towards the memory limit. Switching modules restarts the instance. - No backups during the preview, on any plan.
- Idle connections are closed after 5 minutes. Pooled clients reconnect on their own; long-lived single connections should enable reconnects or a periodic health check.
- Disabled commands:
CONFIG,DEBUG,MODULE,SHUTDOWN,REPLICAOF,SLAVEOF,FAILOVER,SYNC,PSYNC. Libraries that callCONFIGhave an option to skip it, for example Spring Session'sspring.session.redis.configure-action=none. - Engines: choose Redis Open Source 8.10 or Valkey 9.1 when you create an instance; it can't be switched later. Both speak the same protocol, so any Redis or Valkey client works with either. Which one should I pick?
Redis or Valkey?
Both are first-class on KVNest: same plans, prices, TLS, users and metrics. Valkey is the Linux Foundation's fork of Redis 7.2, under the BSD licence. Redis Open Source 8 adds new commands and data types on top, and is offered under the AGPLv3; KVNest runs it unmodified.
| Redis | Valkey | |
|---|---|---|
| Version | 8.10 | 9.1 |
| Licence | AGPLv3 | BSD-3-Clause |
| Modules | JSON, Bloom, Search (Redis Query Engine), TimeSeries | JSON, Bloom, Search |
| Pick it when | You're moving from Redis, or need time series or Redis 8 commands | You want a community-governed, permissively licensed server |
Not sure? Either works for caching, sessions, queues and leaderboards, and your code doesn't change between them.
Troubleshooting
| Symptom | Fix |
|---|---|
| Connection closes right away, or hangs | TLS is off. Use a rediss:// URL, or --tls on the command line. |
| Certificate or hostname verification fails | Connect to inst-<id>.eu.kvnest.com, not an IP address, so the hostname is sent as SNI. |
WRONGPASS or NOAUTH | Copy the password or URL again from the dashboard. The username is default. |
ERR unknown command 'CONFIG' | The command is disabled. Turn off the library feature that calls it (see above). |
ERR max number of clients reached | Too many open connections for your plan. Lower your pool sizes. |
| Times out from a server or CI runner | Outbound port 6380 may be blocked by a firewall on your side. |