Commit 096c5f20 authored by inphi's avatar inphi

proxyd: Allow cached RPC keys to be evicted

parent d064eb8e
---
'@eth-optimism/proxyd': minor
---
proxyd: Allow cached RPCs to be evicted by redis
...@@ -2,6 +2,7 @@ package proxyd ...@@ -2,6 +2,7 @@ package proxyd
import ( import (
"context" "context"
"time"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
"github.com/golang/snappy" "github.com/golang/snappy"
...@@ -16,6 +17,8 @@ type Cache interface { ...@@ -16,6 +17,8 @@ type Cache interface {
const ( const (
// assuming an average RPCRes size of 3 KB // assuming an average RPCRes size of 3 KB
memoryCacheLimit = 4096 memoryCacheLimit = 4096
// Set a large ttl to avoid expirations. However, a ttl must be set for volatile-lru to take effect.
redisTTL = 30 * 7 * 24 * time.Hour
) )
type cache struct { type cache struct {
...@@ -67,7 +70,7 @@ func (c *redisCache) Get(ctx context.Context, key string) (string, error) { ...@@ -67,7 +70,7 @@ func (c *redisCache) Get(ctx context.Context, key string) (string, error) {
} }
func (c *redisCache) Put(ctx context.Context, key string, value string) error { func (c *redisCache) Put(ctx context.Context, key string, value string) error {
err := c.rdb.Set(ctx, key, value, 0).Err() err := c.rdb.SetEX(ctx, key, value, redisTTL).Err()
if err != nil { if err != nil {
RecordRedisError("CacheSet") RecordRedisError("CacheSet")
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment