推荐: blog.csdn.net/aquester https://github.com/eyjian https://www.cnblogs.com/aquester http://blog.chinaunix.net/uid/20682147.html
全部博文(594)
发布时间:2018-09-09 09:47:59
调整以下参数,可以大幅度改善Redis集群的稳定性:为何大压力下要这样调整?最重要的原因之一Redis的主从复制,两者复制共享同一线程,虽然是异步复制的,但因为是单线程,所以也十分有限。如果主从间的网络延迟不是在0.05左右,比如达到0.6,甚至1.2等,那么情况是非常糟糕的,因此同一Redis集群一定要部署在同一.........【阅读全文】
发布时间:2018-09-02 22:46:00
指定集群中任意一个节点,查看集群中所有节点当前已用物理内存、配置的最大物理内存和系统物理内存。源码(可从下载):#!/bin/bash# Query the memory of all nodes in a cluster## Output example:# $ ./query_redis_cluster.sh 192.168.0.31.21:6379# [1.........【阅读全文】
发布时间:2018-09-02 22:04:22
使用之前准备工作:1)配置好与端口无关的公共redis.conf文件,和工具放在同一目录下2)配置好与端口相关的模板redis-PORT.conf文件,也和工具放在同一目录下(部署时PORT会被替换成具体的端口号)3)配置好组成集群的节点文件redis_cluster.nodes,也和工具放在同一目录下redis_cluster.nodes的文件格式为每行一个组成.........【阅读全文】
发布时间:2018-09-02 21:54:31
工具的作用:1)比“cluster nodes”更为直观的显示结果2)指出落在同一个IP上的master3)指出落在同一个IP上的master和slave对运行效果图:源代码(可从https://github.com/eyjian/redis-tools下载):点击(此处)折叠或打开#!/bin/bash# 源码位置:h.........【阅读全文】
发布时间:2018-05-09 14:46:42
在一台物理机上启动6个Redis实例,组成3主3从集群,端口号依次为:1379 ~ 1384,端口号1379、1380和1384三个为master,端口1379的进程ID为17620。现将进程17620暂停(发送SIGSTOP信号),观察集群发现故障时长,和主从切换时长。# 暂停进程17620(端口1379),然后每秒查看一次集群状态$ kill -19 17620;for ((i=0;i.........【阅读全文】
发布时间:2018-03-29 20:07:33
结论:待确认是否为redis的BUG,原因是进程实际占用的内存远小于配置的最大内存,所以不会是内存不够需要淘汰。CPU百分百redis-server进程集群状态:slave解决办法:使用gdb将d.ht[0].used的值改为0问题原因:dictGetRandomKey()过程中,无法走到分支“if (dictSize(d) == 0) return NULL;”,导致函数dbRandom.........【阅读全文】
发布时间:2017-08-29 09:59:18
版本:redis-3.2.9部署:5台64G内存的物理机,每台机器启动2个redis进程组成5主5备集群,每台机器1个主1个备,并且错开互备。问题:发现redis进程占用内存高达40G,而且全是备进程。尝试通过重启进程方式释放内存,但进入复制死循环,报如下所示错误:for lack of backlog (Slave request was: 51875158284)通.........【阅读全文】
发布时间:2017-08-29 09:58:50
版本:redis-3.2.9部署:5台64G内存的物理机,每台机器启动2个redis进程组成5主5备集群,每台机器1个主1个备,并且错开互备。问题:发现redis进程占用内存高达40G,而且全是备进程。尝试通过重启进程方式释放内存,但进入复制死循环,报如下所示错误:for lack of backlog (Slave request was: 51875158284)通.........【阅读全文】
发布时间:2016-09-08 00:06:53
基于IP频率限制是种常见需求,基于Redis可以十分简单实现对IP的频率限制,具体手段为利用Redis的key过期和原子加减两个特性。以IP作为key,频率为key过期时长,比如限制单个IP在2秒内频率为100,则key过期时长为2秒,基于r3c(a Redis Cluster C++ Client)的实现大致如下:// 增加访问次数int increse_access(const st.........【阅读全文】
发布时间:2016-06-08 17:55:19
如果同时配置写AOF和RDB两种文件,但在redis启动时,只会加载AOF,除非配置只写RDB,才会加载RDB文件,也因此AOF文件必须是全量数据,所以会越来越大,这缺点也将是redis优化的一个方向,即AOF只保存相对于RDB的增量,这样AOF文件将大大减小。相关源码如下所示:int main(int argc, char **argv) {&n.........【阅读全文】
yuanxy20132014-01-14 14:48
LZ,你的基于C++的纯面向对象的通用高性能大并发TCP-SERVER/CLIENT开发框架实践系列之《前言篇》,《基础篇》写得非常棒,但是《服务器篇》、《客户端篇》却找不到,恳请楼主赐读。