当前位置:   article > 正文

Redis配置文件_redis-server 指定配置文件

redis-server 指定配置文件

文章目录


Units(单位)

数据单位换算

# 用于指定存储单位的大小换算关系,不区分大小写,只支持bytes,不支持bits
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
# 单位不区分大小写,所以1GB 1Gb 1gB 都相同
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

包含其它配置文件的信息 include path

对于公共部分配置,可按以下方式配置引入

# include /path/to/local.conf
# include /path/to/other.conf
  • 1
  • 2

Network 网络相关

IP绑定

  • 属性:bind IP1 [IP2 …]
    • 主要bind只能有一行配置,如果有多个网卡要监听,就配置多个ip,用空格隔开.
    • 本机的IP地址是和网卡(network interfaces)绑定在一起的,配置这项后,Redis只会接收来自指定网卡的数据包
    • 这项配置绑定的IP是本机的IP地址,不是客户端的IP地址。
  • 例如:bind 127.0.0.1bind 192.168.1.100 10.0.0.1bind 127.0.0.1 ::1

保护模式 protected-mode

  • 属性:protected-mode yes
    • yes:在没有指定bind或没有指定密码的情况下,只能本地访问。

端口号 port

  • 属性:port 6379
  • 配置Redis监听的端口号,默认6379
  • Accept connections on the specified port, default is 6379 (IANA #815344).
    • 接受指定端口上的连接,默认为6379
  • If port 0 is specified Redis will not listen on a TCP socket.
    • 如果指定了端口0,Redis将不会监听TCP套接字

tcp-backlog(TCP半连接队列长度配置 )

  • 属性:tcp-backlog 511
  • 在进行TCP/IP连接时,内核会维护两个队列
  • syns queue用于保存已收到sync但没有接收到ack的TCP半连接请求。
    • 由/proc/sys/net/ipv4/tcp_max_syn_backlog指定
  • accept queue,用于保存已经建立的连接,也就是全连接。
    • 由/proc/sys/net/core/somaxconn指定。
  • 根据配置的注释,需要同时提高somaxconntcp_max_syn_backlog的值来确保生效。

timeout(是否超时无操作关闭连接 )

  • 属性:timeout 0
    • 客户端经过多少时间(单位秒)没有操作就关闭连接
    • 0代表永不关闭

tcp-keepalive(TCP连接保活策略)

  • 属性:tcp-keepalive 60
    • 单位为秒,
    • 如设置为60秒:
      • server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉。
      • 对于无响应的客户端则会关闭其连接。
    • 如果设置为0,则不会进行保活检测。

GENERAL 通用配置

daemonize(启动方式)

  • 属性:daemonize yes
    • 是否以守护(后台)进程的方式启动,
    • 默认no

pidfile(进程pid文件)

  • 属性:pidfile /var/run/redis_6379.pid
    • redis启动后会把pid写入到pidfile指定的文件中。
    • 如上所示:把pid写入到redis_6379.pid

loglevel logfile(日志)

  • loglevel用于配置日志打印机别,默认notice:
  • 属性:loglevel notice
    • debug:能设置的最高的日志级别,打印所有信息,包括debug信息。
    • verbose:打印除了debug日志之外的所有日志。
    • notice:打印除了debug和verbose级别的所有日志。
    • warning:仅打印非常重要的信息。
  • 属性:logfile "路径"
    • 输出文件

databse(指定数据库的数量 )

  • 属性:databases 16
    • redis默认有16个数据库
    • 默认从0开始

always-show-logo(启动是否显示logo)

  • 属性:always-show-logo yes

SNAPSHOTTING(快照)

  • 这里的配置主要用来做持久化操作。

save (数据保存到硬盘)

  • 属性:save 秒数 key的数量
  • 用来配置触发 Redis的持久化条件,也就是什么时候将内存中的数据保存到硬盘。
  • 默认如下配置:
    • save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存
    • save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存
    • save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存
    • save "":表时只用Redis的缓存功能,不需要持久化
      • 需要注释掉所有其他的 save 行来停用保存功能

stop-writes-on-bgsave-error(最后一次保存数据失败后是否停止接受数据)

  • 属性:stop-writes-on-bgsave-error yes
    • yes: 失败后停止接收数据。
    • no:失败后不停止接收数据。
      • 不会意识到数据没有正确持久化到磁盘上,
      • 没有人会注意到灾难(disaster)发生了。
  • Redis如果重启后可以重新开始接收数据

rdbcompression(是否进行压缩存储)

  • 属性:rdbcompression yes
    • 默认值是yes
  • 对于存储到磁盘中的快照,可以设置是否进行压缩存储。
  • yes:开启、redis会采用LZF算法进行压缩。
  • no:关闭、不消耗CPU来进行压缩,但存储在磁盘上的快照会较大。

rdbchecksum (CRC64算法来进行数据校验)

  • 属性:rdbchecksum yes
    • 默认值是yes。
    • yes:增加大约10%的性能消耗,使用CRC64算法来进行数据校验
    • no:关闭此功能。

dbfilename(设置快照的文件名)

  • 属性:dbfilename filename
    • 默认是 dump.rdb

dir(设置快照文件的存放路径)

  • 这个配置项一定是个目录,而不能是文件名。

SECURITY(安全相关)

################################## SECURITY ###################################
# 警告:由于Redis非常快,外部用户可以尝试每秒100万个密码
# Warning: since Redis is pretty fast, an outside user can try up to 1 million passwords per second against a modern box.

# 这意味着你应该使用非常强的密码,否则很容易被破解
# This means that you should use very strong passwords, otherwise they will be very easy to break.

# 请注意,因为密码实际上是客户端之间的共享秘密和服务器,以及不应该被任何人记住的密码
# Note that because the password is really a shared secret between the client and the server, and should not be memorized by any human, the password

可以很容易地是来自/dev/urandom或其他类型的长字符串,所以通过使用长而不可猜的密码,暴力攻击将不可能发生
# can be easily a long string from /dev/urandom or whatever, so by using a long and unguessable password no brute force attack will be possible.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

ACL配置

简介

  • ACL:访问控制列表。

  • 有两种方法配置ACL:

    • 在命令行通过ACL命令进行配置
    • 在Redis配置文件中开始,可以直接在redis.conf中配置,也可以通过外部aclfile配置:aclfile path
    • 配置语法:user <username> ... acl rules ....
    • 例如 user worker +@list +@connection ~jobs:* on >ffa9203c493aa99
  • redis默认有一个default用户。如果default具有nopass规则(就是说没有配置密码),那么新连接将立即作为default用户登录,无需通过AUTH命令提供任何密码。

  • 否则,连接会在未验证状态下启动,并需要AUTH验证才能开始工作。

描述用户可以做的操作的ACL规则如下

启用或禁用用户(已经建立的连接不会生效)
  • on 启用用户,该用户可以验证身份登陆。
  • off 禁用用户,该用户不允许验证身份登陆。
允许/禁止用户执行某些命令
  • +<command> 允许用户执行command指示的命令✅
  • -<command> 禁止用户执行command指示的命令
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/851152
推荐阅读
相关标签