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

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


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  app

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

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

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实例过早的驱逐键或禁止更新。
spa

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


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   ---该地址就是主的地址

相关文章
相关标签/搜索