redis-server.exe redis.windows.conf
使用上面命令啟動redis服務的時候報了以下錯誤信息:
The Windows version of Redis allocates a memory mapped heap for sharing with
the forked process used for persistence operations. In order to share this
memory, Windows allocates from the system paging file a portion equal to the
size of the Redis heap. At this time there is insufficient contiguous free
space available in the system paging file for this operation (Windows error
0x5AF). To work around this you may either increase the size of the system
paging file, or decrease the size of the Redis heap with the --maxheap flag.
Sometimes a reboot will defragment the system paging file sufficiently for
this operation to complete successfully.
Please see the documentation included with the binary distributions for more
details on the --maxheap flag.
大概意思是:沒有足夠的可用空間,可以增加系統的大小分頁文件,或減少Redis的堆的大小
使用--maxheap標志。
有時重啟將充分整理系統分頁文件(重啟可以解決)
可以再啟動命令后面加maxheap參數重新分配堆大小。
redis-server.exe redis.windows.conf --maxheap 200m
http://sanwen8.cn/p/1a3gMDZ.html
[1944] 14 Oct 10:01:31.577 #
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.
RedisQFork_4328.dat
啟動windows版本的Redis會在C盤創建一個RedisQFork打頭的文件,改變存放位置的辦法:
在redis.windows.conf下更改參數heapdir為./,表示是在當前目錄
# The Linux version of Redis relies on the system call fork() to perform
# point-in-time snapshots of the heap. In addition to the AOF and RDB backup
# mechanism, the master-slave synchronization and clustering features are
# dependent on this behavior of fork(). In order for the Windows version to
# perform like the Linux version we had to simulate this aspect of fork().
# Doing so meant moving the Redis heap into a memory mapped file that can
# be shared with a child process.
#
# *** There must be disk space available for this file in order for Redis
# to launch. *** The default configuration places this file in the local
# appdata directory. If you wish to move this file to another local disk,
# use the heapdir flag as described below.
#
# The maxheap flag controls the maximum size of this memory mapped file,
# as well as the total usable space for the Redis heap. Running Redis
# without either maxheap or maxmemory will result in a memory mapped file
# being created that is equal to the size of physical memory. During
# fork() operations the total page file commit will max out at around:
#
# (size of physical memory) + (2 * size of maxheap)
#
# For instance, on a machine with 8GB of physical RAM, the max page file
# commit with the default maxheap size will be (8)+(2*8) GB , or 24GB. The
# default page file sizing of Windows will allow for this without having
# to reconfigure the system. Larger heap sizes are possible, but the maximum
# page file size will have to be increased accordingly.
#
# 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>
# The heap memory mapped file must reside on a local path for heap sharing
# between processes to work. A UNC path will not suffice here. For maximum
# performance this should be located on the fastest local drive available.
# This value defaults to the local application data folder(e.g.,
# "%USERPROFILE%\AppData\Local"). Since this file can be very large, you
# may wish to place this on a drive other than the one the operating system
# is installed on.
#
# Note that you must specify a directory here, not a file name.
# heapdir <directory path(absolute or relative)>
heapdir ./
啟動redis服務器:run.bat
redis-server.exe redis.windows.conf
Redis是可以安裝成windows服務的,開機自啟動
redis-server --service-install redis.windows.conf
但是安裝好之后,Redis並沒有啟動,啟動命令如下:
redis-server --service-start
停止命令:
redis-server --service-stop
還可以安裝多個實例
redis-server --service-install –service-name redisService1 –port 10001
redis-server --service-start –service-name redisService1
redis-server --service-install –service-name redisService2 –port 10002
redis-server --service-start –service-name redisService2
redis-server --service-install –service-name redisService3 –port 10003
redis-server --service-start –service-name redisService3
卸載命令:
redis-server --service-uninstall
最后提示一下:2.8版本的不支持32位系統,32位系統要去下載2.6版本的。2.6版本的無法像上面一樣方便的部署,它提供一個叫RedisWatcher的程序來運行redis server,Redis停止后會自動重啟。
另外推薦一個Redis可視化管理工具:Redis Desktop Manager,官網的下載地址被牆了,可以在我的網盤下載 v0.7.6版
http://keenwon.com/1275.html