redis maxheap 51200000
Redis无法启动
今天在启动Redis时提示以下错:
C:\Java\redis2817>redis-server.exe redis.windows.conf
[5268] 23 Apr 11:45:22.696 #
The Windows version of Redis allocates a large memory mapped file for sharing
the heap with the forked process used in persistence operations. This file
will be created in the current working directory or the directory specified by
the ‘heapdir’ directive in the .conf file. Windows is reporting that there is
insufficient disk space available for this file (Windows error 0x70).
You may fix this problem by either reducing the size of the Redis heap with
the –maxheap flag, or by moving the heap file to a local drive with sufficient
space.
Please see the documentation included with the binary distributions for more
details on the –maxheap and –heapdir flags.
Redis can not continue. Exiting.
原因分析:
经过分析,原来是最大堆大小“maxheap ”配置的问题,是因为可用的内存不足,不 能满足maxheap配置的条件,所以无法启动。
解决办法:
打开Redis的配置文件“redis.windows.conf”,找到以下代码部分:
# The Redis heap must be larger than the value specified by the maxmemory
# flag, as the heap allocator has its own memory requirements and
# fragmentation of the heap is inevitable. If only the maxmemory flag is
# specified, maxheap will be set at 1.5*maxmemory. If the maxheap flag is
# specified along with maxmemory, the maxheap flag will be automatically
# increased if it is smaller than 1.5*maxmemory.
#
# maxheap <bytes>
maxheap 51200000
默认的值是:maxheap 1024000000,
我这因为剩余可用的内存太小了,
所以将其改为:maxheap 51200000,终于可以启动了。