Redis(四):Redis配置文件

Redis(四):Redis配置文件

本文主要是讲解的是Redis的配置文件(可以根据大标题进入配置文件中搜索):

但是Redis的配置文件实在太多了,以下列举几个比较重要的(详讲),和一些需要我们知道的

一、NETWORK

  • pord

这是绑定的端口

  • bind

绑定的主机地址

  • timeout

设置客户端连接时的超时时间,单位为秒,当客户端再这段时间内没有发出任何指令,那么关闭该连接。默认值为0,表示不关闭。

  • tcp-keepalive

单位时秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给的建议值时300s,如果设置为0,则不会周期性的检测。

二、GENERAL

  • daemonize

默认情况下redis不作为一个守护线程,就是我们刚装好redis的时候出来的是no,我们需要改成yes

  • pidfile

当redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

  • loglevel

定义日志级别,默认为notice
1、debug(记录大量日志信息,适用于开发和测试阶段)
2、verbose(较多日志信息)
3、notice(适量日志信息。适用于生产环境)
4、warning(仅有部分重要、关键信息才会被记录)

  • logfile

配置log文件地址,默认打印在命令行终端的窗口上

  • databases

设置数据库的数目。默认的数据库是0号数据库,可以在redis的连接上切换数据库 select db,Redis默认有16个数据库

三、SNAPSHOTTING(配置持久化操作)

  • save

这里是用来触发Redis持久化条件,也就是当条件触发的时候将内存的数据保存到硬盘
save 900 1 : 表示900秒内如果至少有1个key的值变化,则保存。
save 300 10 : 表示300秒如果至少有10个key的值变化,则保存。
save 60 10000 : 表示60秒如果至少有10000个key的值变化,则保存。
如果不需要Redis的持久化,那可以注释掉这里的配置,用save “” 来代替

  • stop-writes-on-bgsave-error

默认值为yes。当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据

  • rdbcompression

默认值是yes,对于存储到磁盘中的快照,可以设置是否进行压缩存储,如果开启的话,redis会采用LZF算法进行压缩,但是会消耗cpu来进行压缩,关闭该功能之后,存储在磁盘上的快照会比较大。

  • ==rdbchecksum ==

默认值是yes,在存储快照之后,可以使用Redis的CRC64算法来进行数据的校验,但会增加性能的消耗。

  • dbfilename

设置快照的文件名,默认是dump.rdb

  • dir

设置快照文件的存放路径,这个配置项一定是个目录,而不是文件名,使用上面的dbfilename作为保存的文件名。

四、REPLICATION

  • slave-serve-stale-data

slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:
1、 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候
2、如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 “SYNC with master in progress” 的错误

  • slave-read-only

配置Redis的从节点是否为只读,即如果配置为no,那么为读写,默认值为yes.

五、SECURITY

-rename-command

flushdb(清空数据库)
flushall(清空所有记录)
config(客户端连接后可配置服务器)
keys (客户端连接后可查看所有存在的键)
作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:
rename-command FLUSHALL “”
也可以保留命令但是不能轻易使用,重命名这个命令即可:
rename-command FLUSHALL abcdefg
这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。

六、MEMORY MANAGEMENT

  • maxmemory

设置客户端最大并发连接数,默认无限制,当达到最大连接数的时候,会出现:
max number of clients reached错误

  • maxmemory-policy

当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择:
1、volatile-lru 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )
2、allkeys-lru 利用LRU算法移除任何key
3、volatile-random 移除设置过过期时间的随机key
4、allkeys-random 移除随机key
5、volatile-ttl 移除即将过期的key(minor TTL)
6、noeviction noeviction 不移除任何key,只是返回一个写错误 ,默认选项
maxmemory-samples :LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存)。随意你可以选择样本大小进行检,redis默认选择3个样本进行检测,你可以通过maxmemory-samples进行设置样本数。

七、APPEND ONLY MODE

  • appendonly

Redis是使用的rdb方式持久化,但是当reids宕机的时候,会导致可能几分钟的数据丢失,而appendonly是另一种存储方式,每次启动Redis都会把这个文件数据读入内存中,先忽略rdb文件,默认为no

  • appendfilename

aof文件名,默认是“appendonly.aof”

  • appendfsync

aof持久化策略的配置;no表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快;always表示每次写入都执行fsync,以保证数据同步到磁盘;everysec表示每秒执行一次fsync,可能会导致丢失这1s数据

  • no-appendfsync-on-rewrite

在aof重写或者写入rdb文件的时候,会执行大量IO,此时对于everysec和always的aof模式来说,执行fsync会造成阻塞过长时间,no-appendfsync-on-rewrite字段设置为默认设置为no。如果对延迟要求很高的应用,这个字段可以设置为yes,否则还是设置为no,这样对持久化特性来说这是更安全的选择。 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no,建议yes。Linux的默认fsync策略是30秒。可能丢失30秒数据。默认值为no。

  • auto-aof-rewrite-percentage

默认值为100。aof自动重写配置,当目前aof文件大小超过上一次重写的aof文件大小的百分之多少进行重写,即当aof文件增长到一定大小的时候,Redis能够调用bgrewriteaof对日志文件进行重写。当前AOF文件大小是上次日志重写得到AOF文件大小的二倍(设置为100)时,自动启动新的日志重写过程。

  • auto-aof-rewrite-min-size

64mb。设置允许重写的最小aof文件大小,避免了达到约定百分比但尺寸仍然很小的情况还要重写

八、REDIS CLUSTER

  • cluster-enabled

集群开关,默认不开启集群模式

  • cluster-config-file

集群配置文件的名称,每个节点都有一个集群相关的配置文件,持久化保存集群的信息。 这个文件并不需要手动配置,这个配置文件有Redis生成并更新,每个Redis集群节点需要一个单独的配置文件。请确保与实例运行的系统中配置文件名称不冲突。默认配置为nodes-6379.conf。

  • cluster-node-timeout

可以配置值为15000。节点互连超时的阀值,集群节点超时毫秒数

下一篇:Redis(五):Redis持久化

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值