redis线上问题及解决方法

Redis内存配置大小要求

配置redis时,内存不宜超过机器总内存的50%,否则写RDB文件时会导致机器总内存不足,从而进行IO等待,使redis访问速度骤降

maxmemory 12gb

设置redis总内存为机器总内存的50%,且当redis进程占用内存超过机器内存的40%时进行报警,此时需要迁移数据

Redis数据较大时,主从同步失败

当redis数据较大时,RDB文件有好几个G,第一次主从同步时会传输整个RDB文件并加载到内存中,数据较大时会导致slave还没同步完,已经超时。此时主从之间会再次进行同步,循环失败。需修改相关参数

repl-ping-slave-period 10

repl-timeout 600

client-output-buffer-limit slave 768mb 512mb 600

Redis内存较大时,bgsave失败后整个Redis不可写

配置中有选项,gbsave失败时不让写,该配置应该设置为no

stop-writes-on-bgsave-error no

slave-serve-stale-data yes

Redis中启动了bgsave进程,且杀不死

设置no-appendfsync-on-rewrite 为yes,再杀死

通过redis-cli进入,然后 config set no-appendfsync-on-rewrite yes

如果是有slave进行同步,则要先关闭slave,然后再杀进程

Redis最好运行在内网中(可信任环境)

bind 127.0.0.1

Redis持久化流程相关内容

Rdb备份

主redis禁用rdb备份,启用aof,且aof重写时间设置长点(也可以自己禁用aof,当主出问题时自动切换从)

迁移中若proxy无响应

网络不好时,迁移slot时可能导致proxy无响应,此时需重启没有响应的proxy,否则可能导致proxy还去以前的slot找key,找不到

Redis进程占用内存已经超过总内存的70%

此 时如果有salve与master进行第一次全同步,可能导致master机器内存不足,从swap读取数据,IO等待导致master处理量骤降,此时 需要启动一台新机器,然后将master中的数据迁移到新机器上,直至迁完,然后将该机器down掉重启,按照ReID是内存配置要求重新配置启动,再加 入到组中,把其他机器的数据迁移过去。

Redis进程占用内存不减少

Redis占用内存没有超过配置中的最大内存数,如果不DEL key,其内存不会减少,即使HDEL 或者 迁移,内存仍然不会变

Codis进行迁移时slot迁移完成却更新slot状态到zk失败

Codis 进行迁移时,如果发生情况:迁移某个slot时,key已经迁移完成,但是更新slot状态到zk时失败,会导致访问proxy时落到这个slot的数据 都找不到。原因是proxy不知道该slot已经迁移完成,当外部访问时,还会要求从源redis中迁移key到现在的redis中,此时如果源 redis给proxy返回错误,则proxy直接退出该次请求。

Redis进行主从全同步时,禁止写磁盘

Redis进行主从同步时,默认会写rdb文件到本地,如果此时内存不足,会使redis IO等待导致处理速度骤降。可以通过禁用写磁盘操作,环境IO等待,配置如下

repl-diskless-sync yes

时间: 2024-10-12 12:23:11

redis线上问题及解决方法的相关文章

点批量移动到线上[1] Toolbox解决方法

点批量移动到线上,如下:左图效果变为右图效果: Analysis Tools工具箱下的Near方法: 点与线做Near后,如下会在point属性表中增加两个字段,分别是NEAR_X和NEAR_Y: 执行后,打开point属性表: 导出dbf表: 添加XY: 结果如下:

Eclipse中输入变量会自动补全上屏的解决方法

我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分讨厌.下面是正规的解决办法,但是经过我反复折腾,我实在没办法把插件的源码显示到工程中.于是偷个懒去网上下载了已经修改好的jar包,成功搞定. 我自己复制jar包的目录是:D:\Work Appliactions\adt-bundle-windows-x86-20140702\eclipse\plug

手机连接不上笔记本热点解决方法

近日为了解决手机连接不上笔记本热点的问题,真可谓是大费周章,原本想先大吐苦水,可是时间关系还是直奔着主题去吧.描述一下问题先,手机上个月还是能好好的连上笔记本电脑热点的,说明一下热点是用win7笔记本命令行设置的,最近莫名其妙的就连不上了,在网上找了各种各样的方法都没有得到解决.最后把热点disallow,再重新设置一次就把问题解决了.初步定义问题的原因为keyUsage没有设置导致密码过期,在设置热点:netsh wlan set hostednetwork mode=allow ssid=w

安装win8/win10提示无法在驱动器0分区上安装windows解决方法

在通过U盘或光盘安装win8/win8.1/win10系统时,不少用户遇到无法安装的问题,提示"无法在驱动器0的分区1上安装windows",格式化分区1也不能解决,进而提示Windows无法安装到这个磁盘,选中的磁盘采用GPT/MBR分区形式,这是怎么回事呢?下面小编跟大家分析出现这个问题的原因以及解决方法. 一.原因分析 win8/win10系统均添加快速启动功能,预装的win8/win10电脑默认都是UEFI引导和GPT硬盘,传统的引导方式为Legacy引导和MBR硬盘,UEFI

IE input file隐藏不能上传文件解决方法

当大神们都在探讨更深层次的问题时,我还在这里转载发些肤浅的问题解决方案.罢了,为了和我一样笨的后来人. 问题: 上传文件时,用<input type="file" />标签,但是默认的file标签很难看,而且每个浏览器下都有很大差距. 1.一般解决办法: 我们基本都把真正的file标签给隐藏,然后创建一个标签来替代它,比如我们创建一个a标签来替代它,隐藏file标签,单击a标签时触发file标签click弹出选择文件窗口,选择文件之后,触发file的change事件提交.

在windows上部署使用redis出现的问题及解决方法

原文链接:https://www.cnblogs.com/herry52/p/5938902.html 下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包,这就是我们需要的: 启动Redis 直接在上图的目录打开命令窗口,运行: [在当前目录下打开cmd窗口的方法:先 按住 shift 键,然后再在目标目录中 右键 ,在右键菜单中 点击 在此处打开命

表格线边框重复css解决方法

1.td 的边框和table 的边框重叠 .table { border-left:1px solid #dedede; border-top:1px solid #dedede;} .td { border-right:1px solid #dedede; border-bottom:1px solid #dedede;} table 只用左边框和上边框,每个td只有右边框和下边框,效果就是整个表格左.上边框是连续实线,右.下边框是延续td的边框所以是断断续续的 解决方法: .table {b

App线上推广的笨方法——从0到100万的质变

线上推广APP,有一些笨办法,经常被人忽视,但确是一些成本低.效果好的方法,我们今天就来讲讲这些线上推广APP的笨办法.比如说论坛发贴, QQ群聊,拉注册,比较辛苦,你拉来一个用户注册我们的网站,使用我们的APP,这是比较慢的方法.还有就是社交分享,比如说分享到微博.人人网.微信等等,这些都是App推广中的比较笨的方法. 还有一些快的方法,比如说投放电视广告,比如说上<天天向上>,卫视.汽车.公交车上面的广告.地铁上面的广告,明星代言.事件营销.另外就是疯狂砸钱,像滴滴打车一样.当然快的方法还

GDB调试Segment Fault的线上http进程的方法

有些问题只有在大并发访问量的线上机器上才能体现出来,测试机没法重现. 我们可以使用GDB来解决这个问题. 首先在命令行启动GDB GDB 然后输入 attach http进程id 如果需要设置断电的话,可以先执行stop,然后设置断电 然后 输入 c 或者 continue 让这个进行继续提供服务,如果这个进程发生了Segfault错误,我们可以通过 bt 等跟踪命令,来查看问题出在哪里