# Memorystore (Redis/Valkey)

> Run Memorystore (Redis/Valkey) locally with LocalCloud: connection settings, supported workflows, known limits, and code examples.
>
> Source: https://local.cloud/services/memorystore/

Memorystore provides managed in-memory data services on Google Cloud. LocalCloud uses a Valkey runtime for documented Redis-compatible commands and instance metadata.

## Typical uses

Use when frequently accessed values, expiring entries, counters, or streams fit Redis commands and an in-memory access model. Choose key names and expiries around the application's cache or queue behavior.

Examples

- Application caches and counters
- Redis-compatible queues and streams

Connection

Environment variable

`REDIS_HOST=localhost:5390`

Runtime details

- **Endpoints:** RESP :5390
- **Minimum tier:** Community
- **Persistence:** service-data
- **Implementation:** Third-Party Emulator

## Example usage

Service ID: `memorystore`. Starts by default. Use an already running LocalCloud runtime for the examples below.

Export the local project and mapped endpoints in your client process, then use the client settings below. [First-time setup](https://local.cloud/docs/)

```bash
# Export GOOGLE_CLOUD_PROJECT and REDIS_HOST
eval "$(localcloud env)"
```

REST gateway examples use the generated HTTP address in `SERVICE_USAGE_EMULATOR_HOST`; native SDKs can use a different protocol.

redis-cli:

### redis-cli

### Set and read a cache value

Set and retrieve a short-lived key; Memorystore speeds up repeated reads through a Redis-compatible cache.

Use a native Redis client against the generated Valkey endpoint.

#### Configure redis-cli

```bash
: "${REDIS_HOST:?Export the LocalCloud environment first}"
export REDISCLI_HOST="${REDIS_HOST%:*}"
export REDISCLI_PORT="${REDIS_HOST##*:}"
```

#### Run in your terminal

```bash
KEY="example-$(date +%s)-$$"
redis-cli -h "$REDISCLI_HOST" -p "$REDISCLI_PORT" SET "$KEY" "Hello from LocalCloud!" EX 60
redis-cli -h "$REDISCLI_HOST" -p "$REDISCLI_PORT" GET "$KEY"
redis-cli -h "$REDISCLI_HOST" -p "$REDISCLI_PORT" DEL "$KEY"
```

#### Verify the result

SET returns OK, GET returns Hello from LocalCloud!, and DEL removes the temporary key. The key also expires after 60 seconds.

Java · REST:

### Java · REST

### List Redis instance metadata

List cache instances; Memorystore provides Redis-compatible storage for fast, temporary application data.

Call the Google Cloud REST API with the JDK HTTP client. Requires JDK 17+. Results reflect resources already created in your local project.

Discovery check · reads existing local state.

#### Save as Hello.java

```java
import java.net.URI;
import java.net.http.*;
import java.time.Duration;
import java.util.Objects;

public class Hello {
  public static void main(String[] args) throws Exception {
    var project = Objects.requireNonNull(System.getenv("GOOGLE_CLOUD_PROJECT"));
    var endpoint = Objects.requireNonNull(System.getenv("SERVICE_USAGE_EMULATOR_HOST"));
    var url = URI.create(endpoint.replaceAll("/+$", "") + "/v1/projects/" + project + "/locations/us-central1/instances");
    var request = HttpRequest.newBuilder(url).timeout(Duration.ofSeconds(30)).GET().build();
    var client = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build();
    var response = client.send(request, HttpResponse.BodyHandlers.ofString());
    if (response.statusCode() >= 400) {
      throw new IllegalStateException(response.statusCode() + ": " + response.body());
    }
    System.out.println(response.body());
  }
}
```

#### Run the example

```bash
java Hello.java
```

#### Verify the result

The request succeeds. An empty list or no printed rows is valid before matching resources exist. Continue with the documented workflows for a resource test.

gcloud CLI:

### gcloud CLI

### List Redis instance metadata

List cache instances; Memorystore provides Redis-compatible storage for fast, temporary application data.

Use the Google Cloud CLI against the local gateway in its default open IAM mode. Run these exports in a terminal dedicated to local development.

Discovery check · reads existing local state.

#### Configure gcloud CLI

```bash
: "${SERVICE_USAGE_EMULATOR_HOST:?Export the LocalCloud environment first}"
export CLOUDSDK_CORE_PROJECT="${GOOGLE_CLOUD_PROJECT:?Export the LocalCloud environment first}"
export CLOUDSDK_AUTH_DISABLE_CREDENTIALS=true
export CLOUDSDK_API_ENDPOINT_OVERRIDES_REDIS="${SERVICE_USAGE_EMULATOR_HOST%/}/"
```

#### Run in your terminal

```bash
gcloud redis instances list --region=us-central1
```

#### Verify the result

The request succeeds. An empty list or no printed rows is valid before matching resources exist. Continue with the documented workflows for a resource test.

Verify a resource workflow by creating isolated state, performing the operation, and reading the result back. Run cleanup even after a failure; delete only test-owned resources.

Connection failed? Check `localcloud status --verbose`, enabled services, and client exports. Stop accidental Google Cloud calls; correct local routing before retrying.

## Documented workflows

- ### Valkey RESP, Lua, Pub/Sub, streams, and transactions

    Connect a Redis-compatible client to the Valkey endpoint, write a key, and verify expiry or transaction behavior. Use separate channel names when testing Pub/Sub across application namespaces.

- ### Redis instance lifecycle, configuration, version labels, and AUTH retrieval

    Create an instance resource, update configuration or version labels, and retrieve its AUTH string. Check the shared data plane separately from administration metadata.

## Service boundaries

- Shared server; database numbers do not isolate Pub/Sub channels
- No multi-shard topology, managed failover, or project authorization

## Code examples and integrations

- [Build an integration test loop](https://local.cloud/gcp-integration-testing/): Start the runtime, verify readiness, exercise your SDK, and clean up test state.

Agent testing

## Use Memorystore (Redis/Valkey) with an AI agent

Before the agent changes application logic, have it create local Memorystore (Redis/Valkey) state, read it back with the project SDK, and note which feature the check covered. That first local call catches accidental production routing and needs no GCP account, service-account key, or billing project.

### Configure this repo

```
Set up this repository to use LocalCloud for local GCP development. First read https://local.cloud/ai/agents.md, then inspect this repo, identify the GCP services and SDK language, configure emulator environment variables, and run the narrowest integration test against localhost. Do not use real GCP credentials or production endpoints.
```

Production endpoints, auth, IAM, quotas, regional behavior, and final release validation still need the target Google Cloud project.

[Agent resources](https://local.cloud/ai/) has more prompts and the AGENTS.md template.

## Related guides

- [Compatibility](https://local.cloud/compatibility/): compare all 27 service guides.
- [Configuration](https://local.cloud/docs/configuration/): service selection and runtime settings.
- [Official Memorystore (Redis/Valkey) documentation](https://docs.cloud.google.com/memorystore/docs/redis/memorystore-for-redis-overview): service concepts and cloud usage.
