redis启动一会就down机

查看redis的服务  ps -ef|grep redis 

重启redis服务   1.源码安装的
                    切换目录   cd /usr/local/redis-3.2.6/
                    关闭: ./redis-cli -p 6379 -a password shutdown
					启动: ./redis-server /etc/redis_6379.conf
				2.修改配置  config set stop-writes-on-bgsave-error no
					
redis deamon no
但愿打印日志
    若是是性能日志,使用 redis-cli 连上后执行 INFO 命令就行,
	查看错误日志的话,使用 tail -f ${日志文件路径} 查看,日志文件路径在 启动配置文件里有设置,例如:
	logfile "/usr/local/var/log/redis.log"
	注意日志的输出级别的设置:
	loglevel notice

redis
   开启实例化会保存数据到dump.rdb文件中,通常使用BGSAVE方式,会fork一个子线程处理,至关于占了两倍的内存,
若是内存过大会致使redis宕机,能够修改vm.overcommit_memory
   修改方法:  (1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,而后sysctl -p 使配置文件生效
            (2) sysctl vm.overcommit_memory=1
            (3) echo 1 > /proc/sys/vm/overcommit_memory


vm.overcommit_memory不一样的值说明:
0 表示检查是否有足够的内存可用,若是是,容许分配;若是内存不够,拒绝该请求,并返回一个错误给应用程序。
1 容许分配超出物理内存加上交换内存的请求
2 内核老是返回true
redis的数据回写机制分为两种
同步回写即SAVE命令。redis主进程直接写数据到磁盘。当数据量大时,这个命令将阻塞,响应时间长
异步回写即BGSAVE命令。redis 主进程fork一个子进程,复制主进程的内存并经过子进程回写数据到磁盘。
因为RDB文件写的时候fork一个子进程。至关于复制了一个内存镜像。当时系统的内存是4G,而redis占用了
近3G的内存,所以确定会报内存没法分配。若是 「vm.overcommit_memory」设置为0,在可用内存不足的状况
下,就没法分配新的内存。若是 「vm.overcommit_memory」设置为1。 那么redis将使用交换内存。
参考: https://www.cnblogs.com/MPPC/p/5924738.html
      https://www.jianshu.com/p/da69edda2a43
      https://blog.csdn.net/kk185800961/article/details/53326465
      https://blog.csdn.net/gxut555/article/details/50527789
      https://segmentfault.com/a/1190000004135982?_ea=505055#articleHeader18
相关文章
相关标签/搜索