连接到redis docker容器时出错

史蒂文

我有一个错误,我无法从我的 Go 应用程序连接到我的 redis 容器。它至少工作了 2 周,直到我重新启动我的电脑,我看不出有什么变化,我确保没有其他容器或进程使用相同的 6379 端口。

我的错误:

panic: failed to load incr lua script: EOF

goroutine 1 [running]:
code/website.connectToRedisLimiterDatabase(0x0, 0x0)

我可以通过我的 cli 连接到 redis 容器:

//exec inside
docker exec -it container-name redis-cli

// set value
set name "test"

// get value
get name
// shows test

这是我在 go 代码中遇到错误的地方:

redisLimiter "github.com/ulule/limiter/v3/drivers/store/redis"
redisSessions "github.com/rbcervilla/redisstore/v8"

// RedisLimiterInstance contains the Redis limiter client and store objects
type RedisLimiterInstance struct {
    Client redisLimiter.Client
    Store  limiter.Store
}

// RedisSessionInstance contains the Redis session client and store objects
type RedisSessionInstance struct {
    Client *redis.Client
    Store  *redisSessions.RedisStore
}

var redisLimiterInstance RedisLimiterInstance
var redisSessionInstance RedisSessionInstance


func connectToRedisLimiterDatabase() error {
    redisLimiterClient := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "", // no password set
        DB:       0,  // use default DB
    })

    store, err := redisLimiter.NewStoreWithOptions(redisLimiterClient, limiter.StoreOptions{
        Prefix:   "rate_limiter_",
        MaxRetry: 3,
    })
    if err != nil {
        panic(err)
    }
    // panic: failed to load incr lua script: EOF
    redisLimiterInstance = RedisLimiterInstance{
        Client: redisLimiterClient,
        Store:  store,
    }
    return nil
}

func connectToRedisSessionDatabase() error {
    redisSessionClient := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379",
        Password: "", // no password set
        DB:       0,  // use default DB
    })
    // New default RedisStore
    store, err := redisSessions.NewRedisStore(context.Background(), redisSessionClient)
    if err != nil {
        log.Fatal("failed to create redis store: ", err)
    }

    store.KeyPrefix("session_")
    store.Options(sessions.Options{
        Path: "/",
        MaxAge:   86400 * 7,
        HttpOnly: false,

    })

    redisSessionInstance = RedisSessionInstance{
        Client: redisSessionClient,
        Store:  store,
    }
    return nil
}

通过 docker 桌面,容器显示:

Configuration loaded

Running mode=standalone, port=6379.

Server initialized

Ready to accept connections

我的 conf 文件只是:

bind 127.0.0.1
port 6379

docker 文件本身是:

FROM redis:6.0.9

COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

有什么想法吗?

布拉克塞尔达

绑定到 redis 容器中的地址 127.0.0.1 将只允许来自容器内的连接。删除该行或绑定到 0.0.0.0 以便 redis 可以绑定到所有接口,而不仅仅是环回。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在本地docker容器上连接到MySQL时出错:ERROR 2002(HY000):无法连接到“ 127.0.0.1”上的MySQL服务器(115)

容器将无法连接到Redis容器

从主机连接到在Docker容器中运行的Redis

如何将Django连接到docker redis容器?

如何从Docker容器连接到本地Redis服务器

连接到Kubernetes Redis Service时出现连接拒绝错误

rails + docker + sidekiq +在127.0.0.1:6379(Errno :: ECONNREFUSED)上连接到Redis时出错

Django无法连接到Redis Docker容器

GiLab CI-Redis :: CannotConnectError:在127.0.0.1:6379上连接到Redis时出错

Django无法连接到Docker中的redis

连接到Vault Docker时检查密封状态时出错

从Vagrant机器连接到Redis Docker容器

无法从Docker连接到Redis

轮询成功,但出错:操作正在进行中(29)。当Xdebug尝试从docker容器连接到PhpStorm时

无法从应用程序容器连接到Redis容器

将Resque-Scheduler与Docker-Compose结合使用-在本地主机上连接到Redis时出错:6379

从Redis ++在Docker中连接到Redis

在Docker容器中连接到SQL Server时出错

Redis docker,无法连接到redis-cli

从Docker容器连接到主机?

从 Docker 容器内部连接到 RDS Postgreql 数据库时出错

无法从docker容器内的spring连接到redis

使用 Docker 时将 Celery 连接到 Redis 时出错

无法将节点容器连接到 redis 容器

Docker Compose - Redis 容器拒绝连接到 Node 容器

从 docker 容器连接到主机 mysql db 时连接被拒绝

连接到 Angular docker 容器时出错

nodejs 容器不会连接到 redis 容器 docker-compose

无法从池中获取资源 - 使用 Java 连接 redis docker 容器时出错