文档章节

Redis配置详解-客户端缓冲区 output buffer

 毛朱
发布于 2015/08/21 10:32
字数 1080
阅读 1357
收藏 9
点赞 0
评论 0

Redis配置详解-客户端缓冲区  http://blog.csdn.net/jiangguilong2000/article/details/38436941


Redis异常及使用总结 http://blog.csdn.net/jiangguilong2000/article/details/45025355



客户端缓冲区 output buffer

大概已经知道Redis是一个内存数据库,这意味着所有的数据都由RAM直接管理和提供的。因此Redis有着卓越的交付性能,Redis可以以亚毫秒级的延迟处理几万、几十万的请求。
Redis,如同它的名字和设计,是一个移动服务器,客户端(通常)通过网络连接Redis。这种情况下,客户端请求返回客户端的时间将显著长于Redis CPU从RAM读取数据的时间。这意味着如果没有客户端缓冲区的话,Redis的主要差异与在该段时间对服务的响应有关。
客户端缓冲区组成了服务客户请求所需的内存空间,Redis的每个连接都配有自己的缓冲区空间。处理请求后,Redis把响应数据复制到客户端缓冲区,然后继续处理下一个请求,与此同时,请求客户端通过网络连接读取数据。Redis客户端缓冲区配置在redis.conf文件:

  1. config get client-output-buffer-limit  

  2. 1) "client-output-buffer-limit"  

  3. 2) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"</span>  

output buffer是Redis为client分配的缓冲区(这里的"client"可能是真正的client,也可能是slave或monitor),若为某个客户端分配的output buffer超过了预留大小,Redis可能会根据配置策略关闭与该端的连接。
例如,若Redis被用作message queue,订购消息的consumer处理速度跟不上发布消息的producer时,就会发生对应的output buffer超限的情况。
该配置项格式如下:
client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
<class>:目前支持3种客户端:
1) normal => normal clients; 
2) slave clients and MONITOR clients; 
3) pubsub => clients subcribed to at least one pubsub channel or pattern
<hard limit>:若output buffer大小超过该值,Redis会立即关闭与对应client的连接
<soft limit> <soft seconds>:若output buffer大小超过soft limit且这种情况的持续时间超过soft seconds,则Redis会关闭与对应client的连接。
默认的配置如下:
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
这些数值分别代表缓冲区软限制,硬限制和以秒为单位的超时(类似于复制缓冲区)。当Redis终止连接时,这些值提供保护——不需要客户读取回复——当缓冲区尺寸达到a)软限制并且保持状态直到超时b)硬限制。将这些数值都设为0意味着关闭保护。
不过,和复制缓冲区不同的是客户端缓冲区来自Redis数据内存空间。可以通过maxmemory指令设置Redis的总内存值,达到极限后,Redis将应用其配置的驱逐策略(由maxmemory-policy 指令定义)。因此,低性能的客户或大量的同时连接可能会因为数据集尺寸和客户端缓冲区达到内存限制导致Redis实例过早的驱逐键或禁止更新。

由于生命周期的相对性,一个客户端不需要降低性能就可能导致这种现象。因为RAM读取和网络读取存在着很大的速度差异,过多的客户端缓冲区很可能耗尽Redis内存,即使是在高性能的客户端和网络连接中。例如,考虑下(万恶的)KEYS指令,这个指令触发后,Redis将会把整个键的名空间拷贝给客户端缓冲区。如果我们的数据库有很多键,这很可能导致驱逐。


Redis主从配置

主要是针对单点的,全局的redis进行主从配置,并用aof方式进行增量更新请求数据

在主的redis配置的最后,redis.conf 添加

include /data/redis/6379/instance.conf 

然后在平级的instance.conf 中的内容

appendonly yes   --默认会生成appendonly.aof 存储数据
maxclients 180000
save ""


在从的redis配置的最后,redis.conf 添加

include /data/redis/6379/instance.conf

然后在平级的instance.conf 中的内容

appendonly yes  --默认会生成appendonly.aof 存储数据
save ""
slaveof 10.104.5.98 6379   ---该地址就是主的地址



本文转载自:

共有 人打赏支持
粉丝 19
博文 147
码字总数 170387
作品 0
济南
codis-server/redis主从同步超时

  问题简介   今天在操作codis集群进行主从同步的时候,发现key加载到快完成的时候,就停下来了,不继续加载key到内存了,等一下又在重新全量同步了。排查日志看到如下内容:      主...

linux运维菜
06/23
0
0
Redis配置文件详解

Redis配置文件详解 Redis是一款开源的、高性能的键-值存储(key-value store),和memcached类似,redis常被称作是一款key-value内存存储系统或者内存数据库,同时由于它支持丰富的数据结构,...

arvin_qin
2017/05/26
0
0
Redis配置文件说明

key default 示例 描述 daemonize yes 是否以后台进程运行,默认为no,如果需要以后台进程运行则改为yes pidfile /var/run/redis.pid 如果以后台进程运行的话,就需要指定pid,你可以在此自定...

竹隐江南
2016/08/24
25
0
Redis(一)、安装与配置文件详解

Redis数据库安装与配置文件详解 第1章 redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(...

呀哈喽
04/06
0
0
Redis单机系列文章--2.Redis统计信息全解(redis info all)

转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426 一、命令说明: info: 部分统计和状态info all: 全部统计和状态info section: 某一块的统计和状态(例如info Replication) Redi...

付磊-起扬
2015/09/17
0
0
redis info 参数详解

redis info 参数 详解 info 以一种易于解释且易于阅读的格式,返回关于redis服务器的各种信息和统计数值 命令如下:(默认不需要all , 我习惯加 all ,你可以去掉all 对吧一下) redis-cli ...

dchuang
2016/04/27
255
0
redis 安全部分,高级部分配置

七,安全部分 当redis-server处于一个不太可信的网络环境中时,可以要求redis客户端在向 redis-server发送请求之前,先进行密码验证 1:requirepass:设置请求的密码 2:rename-command:对命...

daydayup08
2016/04/23
52
0
深入学习 Redis(3):主从复制

原文出处:编程迷思 前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化。 在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。...

编程迷思
07/05
0
0
PHP输出缓冲控制(Output Control)函数详解

之前对php输出缓存有使用,但是没有理解的那么透彻,今天看了一篇博客写得很好 转载过来了。[博客原文][1] 简介 说到输出缓冲,首先要说的是一个叫做缓冲器(buffer)的东西。举个简单的例子说...

小伟哥
2013/11/24
0
2
redis info信息详解B

# Persistence loading:0 ###记录服务器是否正在载入持久化文件, 1为正在加载 rdbchangessincelastsave:0 ###距离最近一次成功创建持久化文件之后, 产生了多少次修改数据集的操作 rdbbgsav...

arvin_qin
2017/05/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

springboot常用注解

@SpringBootApplication: 包含@Configuration、@EnableAutoConfiguration、@ComponentScan 通常用在主类上。 @Service: 用于标注业务层组件。 @RestController: 用于标注控制层组件(如strut...

GoldenVein
13分钟前
0
0
梯度下降法求多元线性回归及Java实现

对于数据分析而言,我们总是极力找数学模型来描述数据发生的规律, 有的数据我们在二维空间就可以描述,有的数据则需要映射到更高维的空间。数据表现出来的分布可能是完全离散的,也可能是聚...

冷血狂魔
18分钟前
2
0
如何进行大数据的入门级学习?

不知道你是计算机专业应届生还是已经从业者。总之,有java基础的学生学习大数据会轻松很多,零基础的小白都需要从java和linux学起。 如果你是一个学习能力特别强,而且自律性也很强的人的话可...

董黎明
26分钟前
0
0
使用Parcelable传递复杂参数

最近做AIDL传递对象,对象必须实现Parcelable的方法才可以被传递。 @Override    public int describeContents() {//这个 默认返回0就行了。        return 0;    }    ...

火云
27分钟前
0
0
十大Intellij IDEA快捷键

Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发...

HJCui
38分钟前
0
0
word 使用mathtype 编写 数学公式

下载安装,这个链接命名。。。。 http://www.mathtype.cn/xiazai.html 安装之后会多出一个选项 使用内联方式插入图表 编写公式的界面 设置支持latex 语法 输入公式回车就可以看到结果...

阿豪boy
56分钟前
0
0
Promise

定义 Promise是异步编程的一种解决方案,所谓Promise就是一个容器,里面保存着某个未来才会结束的事件(通常是一个一步操作)的结果。 特点: 2.1 对象的状态不受外界影响,三种状态pending...

litCabbage
今天
1
0
设计模式:适配器模式

说明:在不改变旧接口代码的前提下,为该接口新增其他接口的功能 适配器模式可以分为:类适配器模式、对象适配器模式、接口适配器模式 前两种模式下,我会以播放器为例。老版的播放器(Playe...

人觉非常君
今天
0
0
使用VsCode搭建Java开发环境,创建springboot应用

1、在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X),输入关键词java、spring分别下载Java开发插件包和springboot插件包 2、配置参数 点击设置按钮,进入设置选项,配置用户设置 在用户...

qsyan
今天
24
0
调教属于你的“贾维斯”(给自己挖了一个很大的坑)

今天玩一下现在很火的人工智能。 废话不多说,先来看几张图: 看出什么蹊跷了吗? 再来看一个视频: https://www.zhihu.com/video/1002567561061511168 (演示网址和代码见文末) 人工智能离...

crossin
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部