在多个应用之间共享 redis 存储

Share redis storage between multiple apps

我在 node 应用程序中使用 redis 来缓存数据,现在我想使用同一服务器上的 django 应用程序访问和修改存储的数据,但我不能'访问数据。

Django 连接:

CACHES = {
  "default": {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://127.0.0.1:6379/0",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
    }
  }
}

在终端中使用 keys * 命令:

$ redis-cli
127.0.0.1:6379> keys *
1) "sess:Ok0eYOko5WaV7njfX04qgqG1oYe0xiL1"   -> this key is set in node
2) ":1:from-django"   -> this key is set in django

访问 Django 应用程序中的密钥:

keys = cache.keys('*')
print(keys)  # prints only one key => ['from-django']

我无法访问节点应用程序中设置的第一个密钥,而且 django 存储的密钥默认以 :1: 为前缀!

我想在 node 和 django 之间共享所有密钥,但它们只能访问自己的密钥。

有什么想法吗?

您可以从任何地方访问所有数据,但您正在使用 Cache 模型中的 Redis!并且所有缓存系统都有自己独特的数据结构,您必须在数据库模型中使用 Redis 并自行扫描。 使用 Python Redis 包访问应用程序中的所有 Redis。