---
id: plugins-cache
title: "Cache"
summary: "The 3 plugins in Cache: Redis delete, Redis read, Redis write."
audience: user
keywords: "RedisDelete, RedisRead, RedisWrite"
---
# Cache

Share a Redis cache with C# scripts and other systems. **Redis read** looks a key up, **Redis write** stores a record (or a text) with an expiry, optionally only if the key is missing, and **Redis delete** removes a key and returns what was stored. Keys are expressions over the record (`customer:{data.CustomerId}`); values are JSON, the same bytes the scripts write. Both StackExchange.Redis strings and the `IDistributedCache` format are supported.

```text
Input → Redis read ─ Found ───────────────────────────────→ continue
             └──── NotFound → load from source → Redis write ─ Written → continue
```

## Plugins

| Plugin | What it does | Pins |
|---|---|---|
| [Redis delete](/documentation/plugins/cache/redis-delete) | Deletes one key from a Redis cache and emits what was stored under it. Use it to invalidate cache entries or to take a value out of the cache once. | `Input`, `Deleted`, `NoData` |
| [Redis read](/documentation/plugins/cache/redis-read) | Reads one key from a Redis cache and emits the stored value. Use it for cache lookups, also on keys that C# scripts write with StackExchange.Redis or `IDistributedCache`. | `Input`, `Found`, `NotFound` |
| [Redis write](/documentation/plugins/cache/redis-write) | Writes one key to a Redis cache with an expiry: the whole input as JSON, or a text from an expression. Use it to fill a cache, for idempotency (write only if missing) and to share values with C# scripts that use StackExchange.Redis or `IDistributedCache`. | `Input`, `Written`, `Exists` |
