09-redis-conf配置文件基础介绍

redis-conf配置文件基础介绍

这篇文章介绍了Redis-6.2.11的配置文件中的大多数配置,但是缺少集群的相关配置和其他一些配置,望大家知晓。

此外,如果有错误之处,还希望大家指出错误之处,万分感谢!

1.bind 127.0.0.1

bind 127.0.0.1

默认情况bind=127.0.0.1,代表只能接受本机的访问请求。后面的::1ipv6的地址。

在不写的bind情况下,代表无限制接受任何ip地址的访问。

生产环境肯定要配置上应用服务器的地址,服务器是需要远程访问的。

例:将来应用所在的服务器的ip地址是:17.55.63.32 这里就需要更改为bind 17.55.63.32

2.保护模式-protected-mode

protected-mode yes

开启了protected-mode(保护模式),那么在没有设定bind ip且没有设密码的情况下,也只接受本机的响应。

如果学习时想要方便,让哪里都可以访问,可以注释掉bind配置,并且把保护模式改成no

3.端口号配置-Port

port 6379

redis默认端口6379就是在这里配置的。

多实例时,就是在这里修改每个实例的端口。

4.tcp半连接队列长度配置 tcp-backlog

tcp-backlog 511

设置tcp的backlog,backlog是一个连接队列,队列总和=未完成三次握手队列 + 已经完成三次握手队列。

在高并发环境下一般需要一个高backlog值来避免慢客户端连接问题。

因为Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值(128)。

所以需要确认增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)

两个值来达到想要的效果。

5.超时关闭-timeout

timeout 0

它可以决定一个空闲的客户端维持多少秒会关闭,0表示关闭该功能。即永不关闭。

默认的配置也是0

6. tcp心跳检测 tcp-keepalive

tcp-keepalive 300

对访问客户端的一种心跳检测,每个n秒检测一次。

单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60

7.通用配置general

7.1 是否配置为守护进程 daemonize yes

daemonize  yes

配置是否为守护进程,默认值为no

redis成为守护进程,意味着redis可以后台运行,所以一般都会把它设置为yes

但是,如果redis是服务脚本启动的,那么不管该参数为什么,redis都会运行成为一个守护进程。

7.2 pid文件位置配置-pidfile

pidfile  /opt/redis/redis_6379.pid

配置存放pid文件的位置,每个实例会产生一个不同的pid文件。

7.3 日志级别配置 loglevel

loglevel  notice

指定日志记录级别,redis总共支持四个级别:

debug:能设置的最高的日志级别,打印所有信息,包括debug信息。
verbose:打印除了debug日志之外的所有日志。
notice:打印除了debug和verbose级别的所有日志。
warning:仅打印非常重要的信息。
默认的日志级别为为notice。

四个级别根据使用阶段来选择,生产环境选择notice 或者warning。

7.4 日志文件输出路径配置

logfile  /opt/redis-6.2.11/log

该路径默认为空。可以根据自己需要把日志文件输出到指定位置。

7.5 数据库数量配置-databases

database 16

设定redis中库的数量,默认数量是16,这也是大家众所周知的数量。

7.6 是否总是显示logo

always-show-logo no

默认是值是no

8.密码配置 requirepass

在命令中设置密码,只是临时的。重启redis服务器,密码就还原了。

永久设置,需要再配置文件中进行设置。

把下面注释解开,把foobared修改成自己相要的密码即可

requirepass  foobared

注意:1.由于redis非常快,外部用户可以尝试150k次密码/s,建议使用一个复杂度非常高的密码;

2.如果主机受密码保护(使用“requirepass”配置下面的指令)之前,可以告诉复制副本进行身份验证启动复制同步过程,否则主机将拒绝复制请求

3.requirepas与ACL LOAD命令中的aclfile选项不兼容,这将导致requirepas被忽略

9.客户端最大连接数-maxclients

maxclients 10000

设置redis同时可以与多少个客户端进行连接

默认maxclients就是10000。如果达到了此限制,redis则会拒绝新的连接请求。

并且向这些连接请求方发出max number of clients reached以作回应。

10.内存管理

10.1 redis最大内存配置-maxmemory

maxmeory 

最大可使用内存,即占用物理内存的比例,默认值为0,表示不限制。生产环境中根据需求设定,通常设置在50%以上

建议最好设置,否则,将内存占满,会造成服务器宕机以及部分数据丢失。

这是因为一旦到达内存使用上限,redis将会试图删除已到期或即将到期的Key。

移除规则(数据淘汰策略)可以通过maxmemory-policy来指定。

10.2 达到最大内存时的移除策略(数据删除策略)-maxmemory-policy

maxmemory-policy noeviction

redis使用的默认策略为noeviction

可选策略:

检测易失数据(可能会过期的数据集server.db[i].expires )
volatile-lru:挑选最近最少使用的数据淘汰   淘汰最长时间没有使用的数据
volatile-lfu:挑选最近使用次数最少的数据淘汰  淘汰使用次数最少的数据
volatile-ttl:挑选将要过期的数据淘汰
volatile-random:任意选择数据淘汰

检测全库数据(所有数据集server.db[i].dict )
allkeys-lru:挑选最近最少使用的数据淘汰
allkeLyRs-lfu::挑选最近使用次数最少的数据淘汰
allkeys-random:任意选择数据淘汰,相当于随机


放弃数据驱逐    基本不使用这种策略
no-enviction(驱逐):禁止驱逐数据(redis4.0中默认策略),会引发OOM(Out Of Memory)

10.3 设置样本数量-maxmemory-samples

maxmemory-samples  5

设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值。

所以可以设置样本的大小

你可能感兴趣的:(redis,网络,服务器)