文章目录
- 一、Units
- 二、INCLUDES
- 三、NETWORK
- 四、GENERAL
- 五、SECURITY
- 六、LIMITS
一、Units
单位,配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感
二、INCLUDES
包含,多实例的情况可以把公用的配置文件提取出来
三、NETWORK
网络相关配置
- bind
- 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
- 不写的情况下,无限制接受任何ip地址的访问
- protected-mode
是否开启本机访问保护模式,取值为:yes、no,no表示支持远程访问,yes表示仅支持本机访问不能远程访问。 - port
端口号,默认为6379 - tcp-backlog
设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已经完成三次握手队列。在高并发场景下需要一个高backlog值来避免慢客户端连接问题 - timeout
一个空闲的客户端维持多少秒会关闭,0表示永不关闭 - tcp-keepalive
对访问客户端的一种心跳检测,每个n秒检测一次。单位为秒,如果设置为0,则不会进行keepalive检测,建议设置成60。
四、GENERAL
通用
- daemonize
守护进程,修改为yes后即可后台运行 - pidfile
存放pid文件位置,每个实例会产生一个不同的pid文件 - loglevel
指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为notice - dir .
工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录 - logfile
志文件,默认为空,不记录日志,可以指定日志文件名 - database
设定库的数量 默认16(编号0~15),默认数据库为 0,可以使用 SELECT 命令在连接上指定数据库 id
五、SECURITY
- 安全:在命令中设置密码,只是临时的。重启redis服务器,密码就还原了。永久设置,需要在配置文件中进行设置
- requirepass:密码,设置后访问Redis必须输入密码。
六、LIMITS
限制
- maxclients
- 设置redis同时可以与多少个客户端进行连接
- 默认情况下为10000个客户端。如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出max number of clients reached以作回应
- maxmemory
- 建议必须设置,否则,将内存占满,造成服务器宕机
- 设置redis可以使用的内存量。一旦到达内存使用上限,redis会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。
- 如果redis无法根据移除规则来移除内存中的数据,或者设置了不允许移除,那么redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等
- 但是对于无内存申请的指令,仍然会正常响应,比如GET等。如果你的redis是主redis(说明redis有从redis),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有在设置的是“不移除”的情况下,才甭考虑这个因素
- maxmemory-policy
- volatile-lru
使用LRU算法移除key,只对设置了过期时间的键(最近最少使用) - allkeys-lru
在所有集合key中,使用LRU算法移除key - volatile-random
在过期集合中移除随机的key,只对设置了过期时间的键 - allkeys-random
在所有集合key中,移除随机的key - volatile-ttl
移除那些TTL值最小的key,即那些最近要过期的key - noeviction
不进行移除,针对写操作,只返回错误信息
- volatile-lru
- maxmemory-sample
设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,redis默认会检查这么多key并选择其中LRU的那个。一般设置3到7的数字,数值越小样本越精确,但性能消耗越小