在多个应用之间共享 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。
我在 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。