首页 > SQL学习 > Redis的配置文件常见配置项
2019
08-05

Redis的配置文件常见配置项

运行配置:

daemonize:是否以守护进程的方式运行(在后台运行,仅linux下有效),可能的值:yes、no,默认值no

pidfile:当Redis以守护进程运行的时候,配置其pid文件,默认为/var/run/redis.pid,当运行多个redis服务时,需要指定不同的pid文件和端口

bind:指定Redis只接收来自于该IP地址的请求,多个IP用空格隔开

port:监听端口,默认为6379

timeout:当客户端闲置多长时间后关闭连接,为0表示关闭该功能

loglevel:log记录等级,可能的值debug,verbose,notice,warning。默认为notice

logfile:log文件地址,默认使用标准输出,如果是守护进程的方式运行则输出给/dev/null

databases:设置数据库的个数,可以使用select 命令来切换数据库。默认使用的数据库是0

save :指定在多长时间内有多少次更新操作,就将数据同步到数据文件,可以多个条件配合,默认为:

    save 900 1
    save 300 10
    save 60 10000
    表示900秒内有1个key变化时,300秒内有10个key变化时,60秒内有10000个key变化时都会将内存中的数据写入到文件

dbfilename:指定本地数据库文件名,默认为dump.rdb

dir:指定本地数据文件存放目录

rdbchecksum:是否校验rdb文件,默认yes

stop-writes-on-bgsave-error:默认情况下,如果redis最后一次的后台保存失败,redis将停止接受写操作直到后台保存进程重新工作(防止用户不知道数据不能正确的持久化)。如果不希望redis这样做,就改成no。默认为yes

requirepass:设置Redis连接密码,客户端在连接Redis时需要通过AUTH 命令提供密码,默认关闭

rdbcompression:存储至本地文件时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

maxclients:同一时间最大客户端连接数,默认为0(不限制),当连接数到达限制时,Redis将不再接收其他新的连接请求并向客户端返回max number of clients reached错误信息

maxmemory :指定Redis能够使用的最大内存

    达到最大内存后,Redis会先尝试清除设置过expire信息的Key,不管该key的过期时间有没有到达(按照设置的过期时间从前向后删除)
    如果带有expire信息的key都删光了仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。

appendonly:指定是否在每次更新操作后进行日志记录,默认为no。

    开启后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重启时,会从该文件恢复出之前的状态。
    使用bgrewriteaof指令,对appendonly.aof进行重新整理,减小appendonly.aof文件的大小。

appendfilename:指定更新日志文件名,默认为appendonly.aof

appendfsync:指定更新日志条件,共有3个可选值:

    no:表示等操作系统进行数据缓存写入到日志(快)
    always:表示每次更新操作后手动调用fsync()将数据写到日志(慢,安全)
    everysec:表示每秒写入一次(折中,默认值)

vm-enabled:是否开启虚拟内存机制,默认值为no。在redis中,所有的key都会放在内存中,在内存不够时,只会把value值放入交换区。这样保证了虽然使用虚拟内存,但性能基本不受影响

vm-swap-file:虚拟内存的交换文件路径,默认为/tmp/redis.swap,不可多个Redis实例共享

vm-max-memory:将所有大于vm-max-memory的数据存入虚拟内存,在redis中,所有的key都只会放在内存中,在内存不够时,只会把value值放入交换区。这样保证了虽然使用虚拟内存,但性能基本不受影响。默认为0,就是将所有value都存在于磁盘

vm-page-size:设置虚拟内存的页大小,swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,如果value值比较小,推荐设置为32或者 64bytes,如果value值比较大,可以相应的设置大一些,默认值为32。

vm-pages:设置交换文件的总page数,页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,在磁盘上每8个page就会占据RAM中的1个byte。总的虚拟内存大小为vm-page-size * vm-pages

vm-max-threads:设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4

glueoutputbuf:设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为yes

hash-max-zipmap-entries 64:指定在超过一定的数量,采用一种特殊的哈希算法(大大减少内存使用)

hash-max-zipmap-value 512:指定最大的元素超过某一临界值时,采用一种特殊的哈希算法(大大减少内存使用)

activerehashing:指定是否激活重置哈希,默认为yes,开启之后,每100毫秒时使用1毫秒的CPU时间来对hash表进行重新hash,用以降低内存的使用。当使用场景有非常严格的实时性需要,不能够接受时不时的对请求有2毫秒的延迟的话,配置为no。如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存

include /path/to/local.conf 指定包含其它的配置文件

slowlog-log-slower-than:记录查询执行时间的日志系统对执行时间大于多少微秒(1秒=1,000,000微秒)的查询进行记录

slowlog-max-len:记录查询执行时间的日志系统最多能保存多少条日志

主从配置:

slaveof :设置该数据库为其他数据库的从数据库,在Redis启动时,它会自动从master进行数据同步

masterauth :当master服务设置了密码保护时,slav 服务连接 master 的密码

slave-serve-stale-data:当一个slave与master失去联系或者复制正在进行的时候,此时从slave获取数据可能不是最新的,该选项为yes则slave会返回这个不一定最新的值,该值为no返回"SYNC with master in progress" 的错误,默认为yes

slave-read-only:配置slave实体是否是只读属性。对于一个slave而言,它的数据都是从master同步而来的,如果写入数据到slave,那么下次同步数据就会删除该数据,所以slave一般都是只读的,默认为yes

repl-ping-slave-period:slave每个指定的秒数会发送ping命令到master,默认为10

repl-timeout:设置主从复制过期时间,这个值一定要比 repl-ping-slave-period 大

repl-backlog-size:当断开连接时用来存放slave数据,这样当一个slave重新连接时只需要同步断开连接后丢失的部分数据即可

slave-priority 100:当master不能正常工作的时候,Redis Sentinel会从slaves中选出一个新的作为master,这个值越小,就越会被优先选中,但是如果是 0 , 那是意味着这个 slave 不可能被选中。默认为100。

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。