【问题标题】:max memory redis heroku django最大内存 redis heroku django
【发布时间】:2015-07-12 16:03:09
【问题描述】:

我正在尝试使用 django 和 celery + redis 将视频上传添加到任务中。视频最大为 3mb,但在内存中传递视频似乎是有问题的,并且达到了 redis 的限制。

如何找到 redis 的最大内存限制?

这是视频上传的样子:

@csrf_exempt
def tag_location(request):
    if request.FILES.__contains__('file'):
        image = request.FILES['file'].read()
    else:
        image = None

    if request.FILES.__contains__('video-file'):
        video = request.FILES['video-file'].read()
    else:
        video = None

    tasks.tag_location.delay(image,video)

    return JsonResponse({'response': 1})

任务 100% 正常工作,只是有时文件太大。有没有办法将视频/图像的文件路径传递给redis,而不是读取文件并通过内存传递?

【问题讨论】:

  • 打开一个到你的 Redis 数据库的连接并运行命令CONFIG GET maxmemory。您使用的是哪个 Redis 数据库?
  • 如果您使用 Heroku Redis,每个计划的内存大小也会在插件页面上注明:elements.heroku.com/addons/heroku-redis

标签: python django heroku redis


【解决方案1】:

maxmemory 配置指令用于配置 Redis 为数据集使用指定数量的内存。

查找最大内存限制:

要找出正在运行的 Redis 服务器的最大内存限制,您需要使用CONFIG GET 命令。 CONFIG GET 命令一般用于读取正在运行的 Redis 服务器的配置参数。 它接受一个参数,并将与该参数匹配的所有配置参数作为键值对列表返回。

例子:

redis 127.0.0.1:6379> CONFIG GET maxmemory # gets maximum memory limit of redis server

64 位系统的默认值 maxmemory0(零),因此没有内存限制。
32 位系统使用 3GB 的隐式内存限制。

redis 127.0.0.1:6379> CONFIG GET maxmemory # output on my 64 bit system
1) "maxmemory"
2) "0"

修改最大内存限制:

要修改redis服务器的最大内存限制,可以使用redis.conf文件设置maxmemory配置指令,或者在运行时使用CONFIG SET命令。

例如,为了配置 500 兆字节的内存限制,可以在 redis.conf 文件中使用以下指令。

maxmemory 500mb

【讨论】:

  • 我看到的问题是关于 Heroku redis 的。不幸的是,AFAICS CONFIG GET 命令不适用于他们的 CLI。至少不在爱好开发计划中
猜你喜欢
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 2015-10-01
  • 1970-01-01
相关资源
最近更新 更多