Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Linux环境下的Redis管道崩溃

Linux环境下的Redis管道崩溃
EN

Stack Overflow用户
提问于 2019-04-12 00:13:48
回答 1查看 225关注 0票数 1

我正在使用带有Python的芹菜库来并行处理一些相当大的数据集。但是我每天运行的任务,每两到三天中断一次,造成以下错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CRITICAL/MainProcess] Unrecoverable error: ResponseError('MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.',)

红宝石原木看起来像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
7633:M 12 Apr 07:56:28.284 * 1 changes in 900 seconds. Saving...
7633:M 12 Apr 07:56:28.288 * Background saving started by pid 9530
9530:C 12 Apr 07:56:28.372 * DB saved on disk
9530:C 12 Apr 07:56:28.373 * RDB: 2 MB of memory used by copy-on-write
7633:M 12 Apr 07:56:28.388 * Background saving terminated with success
7633:M 12 Apr 08:01:29.065 * 10 changes in 300 seconds. Saving...
7633:M 12 Apr 08:01:29.065 # Can't save in background: fork: Cannot allocate memory
7633:M 12 Apr 08:01:35.083 * 10 changes in 300 seconds. Saving...
7633:M 12 Apr 08:01:35.088 * Background saving started by pid 9998
9998:C 12 Apr 08:01:35.099 * DB saved on disk
9998:C 12 Apr 08:01:35.101 * RDB: 2 MB of memory used by copy-on-write
7633:M 12 Apr 08:01:35.188 * Background saving terminated with success

相关的系统配置如下

  • Python 3.6
  • 芹菜4.2.1
  • Redis Server和CLI 4.0.9
  • Ubuntu 18.04 (仿生)

有趣的是,完全相同的配置和系统在另一个(开发)服务器上运行良好,另外一个运行Ubuntu16.04。但生产失败了。请注意,我不是芹菜和红葡萄酒方面的专家,只是在谷歌和一些教程之后,代码才开始工作。因此,请尽量将故障排除步骤保持在相对基本的条件下。另外,当我在shell上ping redis-cli时,我得到一个pong作为回报,这意味着服务器正在运行。

EN

回答 1

Stack Overflow用户

发布于 2019-04-12 02:13:38

看起来内存太少了,看到4月12日的日志:“无法在后台保存:叉:无法分配内存”。看起来,当REDIS试图保存快照(更多细节见这里 )时,操作会失败,直到它无法恢复为止。假设您正在使用大型数据集,可能的解决方案可能是:

  1. 如果可能,为不再需要的数据添加过期时间。更多细节这里
  2. 增加你的内存大小,尽管如果你不断地添加数据,它可能会在某个时候爆炸.
  3. 但是,禁用持久性,写入快照的失败很可能是内存不足的副产品。请记住,REDIS可能会删除某些键,这在某些情况下可能不是理想的情况。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55647229

复制
相关文章
Linux环境下安装部署redis
修改redis.conf配置文件将里面的daemonize no 改成 yes,让服务在后台启动
全栈程序员站长
2022/11/09
2.9K0
Linux环境下安装部署redis
linux环境下redis安装和启动
执行完上诉命令安装后,redis所有的相关文件都会安装到当前目录下,其中,可执行文件redis-server或者redis-cli等都位于src目录下。
fastmock
2022/07/13
1.9K0
Redis教程01(linux环境下安装)
官网下载地址:http://www.redis.cn 各个历史版本下载地址:http://download.redis.io/releases/ 将安装文件下载到/opt目录下。 进入该目录通过wget下载
用户4919348
2019/04/02
7570
Redis教程01(linux环境下安装)
浅谈Linux下的管道与重定向
小编最近在研究Linux下的脚本编写,其中很多环节涉及到和多个命令组合使用,如:自动输入系统密码等;而在Linux下最常用的就是管道和重定向。
用户5521279
2020/10/19
1.4K0
浅谈Linux下的管道与重定向
Redis的管道Pipeline
文章目录 1. Redis的管道(Pipeline) 1.1. 为什么使用管道 1.2. 客户端使用管道执行命令 1.2.1. API Redis的管道(Pipeline) 为什么使用管道 其中redis的执行一条命令可以分为四个步骤 发送命令 命令排队 命令执行 返回结果 其中1-4之间所需要的时间称为往返时间(RTT) Redis提供了批量操作命令(例如mget、mset等),有效地节约RTT。但 大部分命令是不支持批量操作的,例如要执行n次hgetall命令,并没有 mhgetall命令存在,需要
爱撒谎的男孩
2019/12/31
1.6K0
Linux下Redis的安装
https://www.cnblogs.com/cloudshadow/p/mac_brew_install_redis.html
汪凡
2019/02/22
1.9K0
还原安装现场 -- Linux环境下搭建Redis详细步骤
6、修改redis.conf配置文件,输入vim redis.conf回车,输入:"i",进入编辑,编辑完成后,输入:":wq",进行保存。修改两处:
陈哈哈
2020/07/06
1.4K0
linux的重定向、管道与环境变量PATH
使用 which 查询 ls 命令,发现是一个 64为可执行 程序,可以动态链接。
lovevivi
2022/11/10
2.1K0
linux的重定向、管道与环境变量PATH
linux环境安装Redis
1、下载redis源码包(Redis中文网:https://www.redis.net.cn/)
Sindsun
2019/12/06
2.1K0
linux环境安装Redis
Redis 管道技术
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:
子润先生
2021/07/02
4520
Redis | 管道 —— PipeLine
在我们使用 Redis 的时候,通常是使用一条一条的命令来进行操作,比如我们可以执行一个 “set key1 value1” 这样的操作,然后再执行一个 "set key2 value" 这样的操作。Redis 是基于客户端和服务端的模式,当客户端和服务端进行通信的时候,通常会使用 Socket 来进行网络的通信。当我们执行 "set key value" 时,客户端会对服务器发送一个数据包,当我们再次执行 "set key2 value2" 时,客户端又会对服务器发送一个数据包。这样,看起来没有什么太多的问题,但是当数据量过大的时候,这样的发送会产生一定的网络延时,如果通过 Wireshark 一类的软件抓包的话,可以看到每次执行命令时,都会发送一个 PSH 包和一个 ACK 的包。为了在大量数据写入 Redis 时可以降低时延,Redis 引入了管道。
码农UP2U
2020/10/29
3.5K0
redis管道技术
由于redis通信是通过tcp协议基础,并且是堵塞的处理方式,在第一个请求没有执行并返回前,无法处理第二个请求。所以事件浪费在了网络传输和堵塞请求中。
用户1558882
2018/08/01
5430
linux环境下查看redis的版本有两种方式
严格上说:通过redis-cli 得到的结果应该是redis-cli 的版本,但是 redis-cli 和redis-server一般都是从同一套源码编译出的。所以应该是一样的。
用户8965210
2021/09/02
2.2K0
Linux管道符、重定向与环境变量
把多个 Linux 命令适当地组合到一起,使其协同工作,以便更加高效地处理数据。要做到这一点,就必须搞明白命令的输入重定向和输出重定向的原理。
张旭博客
2022/12/27
2.5K0
Linux管道符、重定向与环境变量
Linux下安装Redis
首先去官网下载redis安装包:下载redis 准备安装 运行命令: tar zxvf redis-3.0.4.tar.gz 进入解压后的文件夹: cd redis-3.0.4 编译源码: make
用户1154259
2018/01/17
2.1K0
Linux下安装Redis
linux下安装redis
在安装目录下创建一个文件夹etc,etc目录一般用来存放程序所需的整个文件系统的配置文件。
秋白
2019/02/21
2.5K0
linux下安装redis
Linux下安装Redis
链接:https://pan.baidu.com/s/1EsvWGjrEIddwMs9CJk9CMA 提取码:kalk
全栈程序员站长
2022/08/12
1.3K0
Linux下安装Redis
linux环境下 python环境imp
Linux环境中自定义的模块swport,import swport 出错。swport模块在/root/sw/目录下。
py3study
2020/01/16
2.4K0
Linux的管道命令
Linux的管道命令 管道命令(Pipe) 管道命令用"|"来表示,管道命令需要接收前一个命令的输出来进行操作,但不能处理前一个命令的错误. //选取界面:cut,grep cut -d '分隔字符' -f fields cut -c 字符范围 //用于排列整齐的信息 cut -d ':' -f 3,5 //以:作为分隔 列出第3列和第5列的数据 //刚才的cut是做切割,而grep是做分析 grep -a:将文件以text文件方式查找数据; -c:计算找到'查找字符串'的次数 -v:反向输
Dream城堡
2018/12/27
2.6K0
《redis in action》redis事务和管道
在之前的文章中我们大概学习了redis的安全性,主要就是持久化和夸机备份。这里我们再来学习一下redis的安全和性能问题。这块说的性能问题主要就是说客户端与服务端的通信,而不是说redis的服务器的机器的问题。
写一点笔记
2022/08/11
5840
《redis in action》redis事务和管道

相似问题

Linux环境下基于管道的程序设计

21

Linux环境下Eclipse设计器的BIRT预览崩溃

11

linux环境下管道的读写

11

Linux环境下的ZeroMQ

113

多线程环境下的Redis连接(Unicorn)

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文