首页 > 数据库 >Windows下Redis中RedisQFork位置调整

Windows下Redis中RedisQFork位置调整

时间:2022-12-28 11:01:37浏览次数:67  
标签:service Windows redis maxheap Redis -- RedisQFork file

 

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

Redis can not continue. Exiting.

 

RedisQFork_4328.dat

Windows下Redis中RedisQFork位置调整_redis

启动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​

 



标签:service,Windows,redis,maxheap,Redis,--,RedisQFork,file
From: https://blog.51cto.com/u_15147537/5973911

相关文章

  • Redisson使用起来很方便,但是需要redis环境支持eval命令
     Redisson使用起来很方便,但是需要redis环境支持eval命令,否则一切都是悲剧,比如me.结果还是要用RedisCommands去写一套。例子就如下,获得一个RLock锁对象,然后tryLock和unlock......
  • windows配置java17
    最近重置系统了,所有东西都得重装一遍。但是为了能继续撸树盖房子,java又是必不可少的,先把java搞回来再说。jdk下载地址https://www.oracle.com/java/technologies/javase......
  • Redis 如何实现库存扣减操作和防止被超卖?
    本文已经收录到Github仓库,该仓库包含计算机基础、Java核心知识点、多线程、JVM、常见框架、分布式、微服务、设计模式、架构等核心知识点,欢迎star~Github地址:​​https://gi......
  • php redis之高性能扫描和批量操作
    前提:redis的扫描方法,使用scan,而不是使用keys* 因为keys*会全部key扫描一次,key数量很多时,容易造成阻塞太久甚至down机。 scan原理:指定每次遍历的key数目和查找规......
  • Redis的高并发和快速原因
     1.Redis是基于内存的,内存的读写速度非常快;2.Redis是单线程的,省去了很多上下文切换线程的时间;3.Redis使用多路复用技术,可以处理并发的连接。非阻塞IO内部实现采用epol......
  • 设置程序在Windows开机后自动运行的3种方式
    设置程序开机自动运行的方式主要有三种:一、把快捷方式复制到[开始->所有程序->启动]中。这个得依赖用户的操作。二、程序添加到Windows开机选项中启动运行。传送门设置......
  • redis针对超卖现象
    可以使用锁的方式解决锁分为乐观锁和悲观锁  乐观锁的实际运用方法:版本号法通过在数据库中的一个版本号字段来表示。 乐观锁又利用了CAS的思想......
  • 跟光磊学Java-Windows版Java17开发环境搭建
    Java语言核心技术  如果想要开发Java程序/Java项目之前,必须要安装和配置JDK,这里的JDK表示Java17,不过下载软件的时候,强烈推荐大家一定要去软件的官网下载,因为官......
  • windows server 2016域服务器升级到server 2019
    问题1:windowsserver2016域无法升级到windowsserver2022见下图不知道各位技术大佬是否也遇到同样的问题,还请协助!问题2:windowsserver2016域服务器无法获取WSUS补丁更新......
  • Redis持久化
    Redis 为了内存数据的安全考虑,会把内存中的数据以文件形式保存到硬盘中一份,在服务器重启之后会自动把硬盘的数据恢复到内存(redis)的里边。数据保存到硬盘的过程就称为“持......