redis4.x版本配置项全解

redis的conf文件内容丰富,值得一读 。
1,进制换算

redis4.x版本配置项全解

文章插图
 
1,为了使配置文件生效,配置文件必须是redis-server的第一个参数
2,指定内存大小时,带b和不带b的区别
3,不区分大小写
2,引用
redis4.x版本配置项全解

文章插图
 
我们可以执行基础配置文件,然后include进来 。再配置几个特殊的参数 。
这在我们运维大量redis实例时,非常有用 。
【redis4.x版本配置项全解】但是我们实际上使用运维工具来运维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/somaxconn128我这里显示是128
也就是默认的配置511是用不到的,被内核先限制住了 。
echo 512 > /proc/sys/net/core/somaxconnsysctl -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就好




    推荐阅读