<返回更多

redis4.x版本配置项全解

2019-08-26    
加入收藏

redis的conf文件内容丰富,值得一读。

1,进制换算

redis4.x版本配置项全解

 

1,为了使配置文件生效,配置文件必须是redis-server的第一个参数

2,指定内存大小时,带b和不带b的区别

3,不区分大小写

2,引用

redis4.x版本配置项全解

 

我们可以执行基础配置文件,然后include进来。再配置几个特殊的参数。

这在我们运维大量redis实例时,非常有用。

但是我们实际上使用运维工具来运维redis实例,一般不用这个,不如全部配置来简单直观。

3,模块

redis4.x版本配置项全解

 

模块是redis4.0以上版本新增的特性,可以编写自己的扩展模块,加载进redis。

高阶使用,还是很需要学习一把的。

官方模块地址:https://redis.io/modules

4,网络配置

redis4.x版本配置项全解

 

【改动点】

默认是bind 127.0.0.1,这只能监听自己机器上的连接。我们需要改成机器的ip

不要注释掉,这样不安全

redis4.x版本配置项全解

 

保护模式。模式是on的。当你把bind注掉,并且redis没设置密码,就会触发保护模式,只允许本机登录redis。

我们保持默认就好。我们的redis都应该设置密码的。

redis4.x版本配置项全解

 

【改动点】

端口,默认6379

redis4.x版本配置项全解

 

要理解这个参数,要从TCP连接的三次握手讲起

redis4.x版本配置项全解

 

如上图,在server端处理TCP连接三次握手过程中,linux内核为server端维护两条backlog队列,一条是TCP层的未连接队列,也就是只发过来,但是还没确认,对应内核的net.ipv4.tcp_max_syn_backlog参数。下面那个是应用层的等待最终建立连接的队列(等系统确认建立TCP连接后,会从这个queue删掉),对应net.core.somaxconn这个内核参数。

我们这里的tcp-backlog很明显,对应的是下面那个队列。

联系到redis,因为Redis的单线程模型(对命令的处理和连接的处理都是在一个线程中),如果存在慢查询的话,会出现等待accept队列满,造成新的accept的连接进不了队列。导致客户端看到connect time out类似的报错

总结:tcp-backlog并不是redis的最大连接数。而是和redis优化有关的参数。

看看linux内核这个值是多少

cat /proc/sys/net/core/somaxconn
128

我这里显示是128

也就是默认的配置511是用不到的,被内核先限制住了。

echo 512 > /proc/sys/net/core/somaxconn
sysctl -p

这样修改,并生效

redis4.x版本配置项全解

 

除了TCP连接以外,redis也支持 Unix Socket 的方式运行,可以避免 TCP/IP 的性能瓶颈,在高访问场景实现 25% 的性能提升。

默认是不使用的。

这种通信方式仅用于本机的进程间通信,不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,所以性能上和效率上比TCP/UDP Socket高得多。

使用起来就像给本机的某个程序外挂了一块内存。

(没用过这种方式~)

redis4.x版本配置项全解

 

当一个redis客户端多久没向server端发送请求了,server端可以主动断掉连接。

默认是0,表示永不主动断掉

redis4.x版本配置项全解

 

保活检测。默认是每300s向客户端发送ack确认包,以检测客户端是否还活着。

改成0是不检测。保持默认的300就好

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>