博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows下Redis中RedisQFork位置调整
阅读量:5814 次
发布时间:2019-06-18

本文共 5226 字,大约阅读时间需要 17 分钟。

 

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 
# 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
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

 

转载地址:http://kbxbx.baihongyu.com/

你可能感兴趣的文章
图解Ajax工作原理
查看>>
oracle导入导出小记
查看>>
聊一聊log4j2配置文件log4j2.xml
查看>>
NeHe OpenGL教程 第七课:光照和键盘
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
Php实现版本比较接口
查看>>
删除设备和驱动器中软件图标
查看>>
第四章 TCP粘包/拆包问题的解决之道---4.1---
查看>>
html语言
查看>>
从源码看集合ArrayList
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>