我正在尝试使用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而不是读取文件并将其传递到内存中?
答案 0 :(得分: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位系统的默认值maxmemory
为0
(零),因此没有内存限制。
32位系统使用隐式内存限制3GB
。
redis 127.0.0.1:6379> CONFIG GET maxmemory # output on my 64 bit system
1) "maxmemory"
2) "0"
修改最大内存限制:
要修改redis服务器的最大内存限制,可以使用maxmemory
文件或在运行时使用redis.conf
命令设置CONFIG SET
配置指令。
例如,为了配置500兆字节的内存限制,可以在redis.conf文件中使用以下指令。
maxmemory 500mb