redis.conf 翻译与配置(一)【redis6.0.6】
发布日期:2021-06-30 19:46:04 浏览次数:2 分类:技术文章

本文共 10224 字,大约阅读时间需要 34 分钟。

学习redis的途中,碰上了redis.conf,突发奇想,想着来进行一波翻译输出。

源码之前,了无秘密。

在这里插入图片描述

文章目录

前言

原文

# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:## 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.

译文

Redis配置文件示例

注意,为了读取配置文件,Redis必须以文件路径作为第一个参数开始:

./redis-server /path/to/redis.conf	//redis.conf绝对路径

注意(单位制):当需要动态分配内存时,内存转换形式如下:

# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes

单位不区分大小写。


INCLUDE

原文

################################## INCLUDES #################################### Include one or more other config files here.  This is useful if you# have a standard template that goes to all Redis servers but also need# to customize a few per-server settings.  Include files can include# other files, so use this wisely.## Notice option "include" won't be rewritten by command "CONFIG REWRITE"# from admin or Redis Sentinel. Since Redis always uses the last processed# line as value of a configuration directive, you'd better put includes# at the beginning of this file to avoid overwriting config change at runtime.## If instead you are interested in using includes to override configuration# options, it is better to use include as the last line.## include /path/to/local.conf# include /path/to/other.conf

译文

本文件包含了多项配置。假如说你有一个可用于所有的 redis server 的标准配置模板,但针对某些 server 又需要一些个性化的设置。你可以使用 include 来包含一些其他的配置文件,这对你来说是非常有用的。

但是要注意哦,include 是不能被 config rewrite 命令改写的。由于 redis 总是以最后的加工线作为一个配置指令值,所以你最好把include 放在这个文件的最前面,以避免在运行时覆盖配置的改变,相反,你就把它放在后面。


MODULES

原文

################################## MODULES ###################################### Load modules at startup. If the server is not able to load modules# it will abort. It is possible to use multiple loadmodule directives.## loadmodule /path/to/my_module.so# loadmodule /path/to/other_module.so

译文

在启动时加载模块。如果服务器无法加载模块,它就挂机了。

可以使用多个模块加载指令。


网络连接

原文

################################## NETWORK ###################################### By default, if no "bind" configuration directive is specified, Redis listens# for connections from all the network interfaces available on the server.# It is possible to listen to just one or multiple selected interfaces using# the "bind" configuration directive, followed by one or more IP addresses.## Examples:## bind 192.168.1.100 10.0.0.1# bind 127.0.0.1 ::1## ~~~ WARNING ~~~ # If the computer running Redis is directly exposed to the# internet, binding to all the interfaces is dangerous and will expose the# instance to everybody on the internet. So by default we uncomment the# following bind directive, that will force Redis to listen only into# the IPv4 loopback interface address (this means Redis will be able to# accept connections only from clients running into the same computer it# is running).## IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES# JUST COMMENT THE FOLLOWING LINE.# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~bind 127.0.0.1# Protected mode is a layer of security protection, in order to avoid that# Redis instances left open on the internet are accessed and exploited.## When protected mode is on and if:## 1) The server is not binding explicitly to a set of addresses using the#    "bind" directive.# 2) No password is configured.## The server only accepts connections from clients connecting from the# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain# sockets.## By default protected mode is enabled. You should disable it only if# you are sure you want clients from other hosts to connect to Redis# even if no authentication is configured, nor a specific set of interfaces# are explicitly listed using the "bind" directive.protected-mode yes# Accept connections on the specified port, default is 6379 (IANA #815344).# If port 0 is specified Redis will not listen on a TCP socket.port 6379# TCP listen() backlog.## In high requests-per-second environments you need an high backlog in order# to avoid slow clients connections issues. Note that the Linux kernel# will silently truncate it to the value of /proc/sys/net/core/somaxconn so# make sure to raise both the value of somaxconn and tcp_max_syn_backlog# in order to get the desired effect.tcp-backlog 511# Unix socket.## Specify the path for the Unix socket that will be used to listen for# incoming connections. There is no default, so Redis will not listen# on a unix socket when not specified.## unixsocket /tmp/redis.sock# unixsocketperm 700# Close the connection after a client is idle for N seconds (0 to disable)timeout 0# TCP keepalive.## If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence# of communication. This is useful for two reasons:## 1) Detect dead peers.# 2) Take the connection alive from the point of view of network#    equipment in the middle.## On Linux, the specified value (in seconds) is the period used to send ACKs.# Note that to close the connection the double of the time is needed.# On other kernels the period depends on the kernel configuration.## A reasonable value for this option is 300 seconds, which is the new# Redis default starting with Redis 3.2.1.tcp-keepalive 300

译文

默认情况下,如果没有指定“绑定”配置指令,Redis监听服务器上所有可用网络接口的连接。

可以使用“bind”配置指令监听一个或多个选择的接口,后面跟着一个或多个IP地址。

# Examples:## bind 192.168.1.100 10.0.0.1# bind 127.0.0.1 ::1

~~~~~~~~ 警告~~~~~~~~

如果你的redis服务器直接暴露在公网上,允许任意接口绑定,这是很危险的,因为这将暴露实例给互联网上的每个人。

因此,默认情况下我们取消了以下bind指令的注释(默认bind127.0.0.1),这将迫使Redis只监听IPv4环回接口地址(这意味着Redis将只能接受来自运行在同一台计算机上的客户端的连接)。

如果你不知道哪儿来的迷之自信,那可以把下面那一行注释掉了。


保护模式是一层安全保护,用于避免Redis实例在互联网上开放被访问和利用。

当保护模式打开时,且

1) 服务器未显式绑定网络地址 2) 未设置密码

服务器只接受来自:IPv4和IPv6环回地址127.0.0.1和::1、以及Unix域套接字的客户端连接。

默认保护模式是启用的。只有当你确定你想要客户从其他主机连接到Redis,即使没有身份验证配置,也没有一个特定的接口设置明确列出使用“绑定”指令时,你应该禁用它。


默认端口号为6379。如果端口号被设置为0,则redis将不再保持TCP通信能力。


在高并发环境下,需要较高的缓冲机制来缓解客户端连接压力。

Linux内核将其写为/proc/sys/net/core/somaxconn的值(默认128),因此请确保提高somaxconn和tcp_max_syn_backlog的值,以获得预期的效果。

tcp-backlog 511


指定用于侦听传入连接的Unix套接字的路径方法如下。没有默认值,所以没有指定时,Redis不会监听unix套接字。

# unixsocket /tmp/redis.sock# unixsocketperm 700

在客户端空闲N秒后关闭连接。

设置为0表示不使用该功能。


如果非零,则使用SO_KEEPALIVE在没有通信的情况下向客户端发送TCP ack。从以下两方面来看:

1)检测死亡同伴。2)从中间网络设备的角度来看,让连接活起来。

在Linux上,指定的值(以秒为单位)是用于发送ack的周期。

注意,要关闭连接,需要双倍的时间。对于其他内核,周期取决于内核配置。

这个选项的合理值是300秒。


常规

原文

################################# GENERAL ###################################### By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.daemonize no# If you run Redis from upstart or systemd, Redis can interact with your# supervision tree. Options:#   supervised no      - no supervision interaction#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET#   supervised auto    - detect upstart or systemd method based on#                        UPSTART_JOB or NOTIFY_SOCKET environment variables# Note: these supervision methods only signal "process is ready."#       They do not enable continuous liveness pings back to your supervisor.supervised no# If a pid file is specified, Redis writes it where specified at startup# and removes it at exit.## When the server runs non daemonized, no pid file is created if none is# specified in the configuration. When the server is daemonized, the pid file# is used even if not specified, defaulting to "/var/run/redis.pid".## Creating a pid file is best effort: if Redis is not able to create it# nothing bad happens, the server will start and run normally.pidfile /var/run/redis_6379.pid# Specify the server verbosity level.# This can be one of:# debug (a lot of information, useful for development/testing)# verbose (many rarely useful info, but not a mess like the debug level)# notice (moderately verbose, what you want in production probably)# warning (only very important / critical messages are logged)loglevel notice# Specify the log file name. Also the empty string can be used to force# Redis to log on the standard output. Note that if you use standard# output for logging but daemonize, logs will be sent to /dev/nulllogfile ""# To enable logging to the system logger, just set 'syslog-enabled' to yes,# and optionally update the other syslog parameters to suit your needs.# syslog-enabled no# Specify the syslog identity.# syslog-ident redis# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.# syslog-facility local0# Set the number of databases. The default database is DB 0, you can select# a different one on a per-connection basis using SELECT 
where# dbid is a number between 0 and 'databases'-1databases 16# By default Redis shows an ASCII art logo only when started to log to the# standard output and if the standard output is a TTY. Basically this means# that normally a logo is displayed only in interactive sessions.## However it is possible to force the pre-4.0 behavior and always show a# ASCII art logo in startup logs by setting the following option to yes.always-show-logo yes

译文

默认情况下redis不是作为守护进程而运行的。如果需要的话,请选择“yes”。

注意,当监控pid时,Redis将在/var/run/ redisin中写入一个pid文件。

可以通过upstart 或 systemd管理守护进程。

如果pid文件被指定,Redis在启动时写入指定的位置,在退出时删除它。

当服务器运行非守护进程时,如果配置中没有指定pid文件,则不会创建任何pid文件。当服务器被守护化时,即使没有指定pid文件也会被使用,默认为“/var/run/redis.pid”。

创建一个pid文件是最好的尝试:如果Redis不能创建它,也不会有什么不好的事情发生,服务器依旧启动和正常运行。


指定服务器的消息级别

调试(大量信息,对开发/测试很有用)冗长(许多很少有用的信息,但不像调试级别那样混乱)注意(可能比较冗长,您在生产环境中需要什么)警告(只有非常重要/关键的消息被记录)

指定日志文件名。

空字符串也可以用来强制Redis将日志消息输出到标准输出。注意,如果使用daemonize以外的标准输出进行日志记录,那么日志将被发送到/dev/null。


要启用到系统日志记录器的日志记录,只需将“syslog-enabled”设置为yes,并可选地更新其他syslog参数以满足您的需要。

指定syslog工具。必须是用户或介于LOCAL0-LOCAL7之间。


设置数据库的数量。

默认数据库是DB 0,您可以使用select dbid 在每个连接的基础上选择一个不同的数据库,其中dbid是一个处于 0 和 ‘databases’-1 之间的数字。


默认情况下,只有当日志开始输出到标准输出并且标准输出是TTY时,Redis才会显示一个ASCII艺术徽标。基本上,这意味着一个徽标通常只在交互会话中显示。

但是,通过将以下选项设置为yes,可以强制执行4.0之前的行为,并始终在启动日志中显示ASCII艺术徽标。


哇,累,粉丝可见吧,累死我了。。

下一篇:redis.conf 翻译与配置(二)【redis6.0.6】

转载地址:https://lion-wu.blog.csdn.net/article/details/108019877 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:redis.conf 翻译与配置(二)【redis6.0.6】
下一篇:【redis入门】redis安装后相关知识串讲

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月17日 19时25分28秒