Redis配置

Posted 编程人,在天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis配置相关的知识,希望对你有一定的参考价值。

一、Redis配置项查看

  redis配置文件在其安装目录下的etc子目录中,文件名为redis.conf。也可以通过config命令查看redis的配置项:

其中”config get *”表示查询所有配置,这里只截取其中几个配置项展示。

 

二、Redis配置项说明

服务器相关:

1. bindredis绑定的主机地址。

配置示例:

bind 127.0.0.1

2. port:指定redis监听的端口,默认为6379

配置示例:

port 6379

3. requirepass:设置redis连接的密码,设置之后客户端连接redis时需要先通过auth命令提供密码进行验证才能进行后续操作,默认没有密码。

配置示例:

requirepass mypass

4. daemonize设置redis是否以守护进程方式运行,默认为no

配置示例:

daemonize yes

5. pidfile:当redis以守护进程方式运行时,会把pid写入pidfile配置的文件中。

配置示例:

pidfile /var/run/redis_6379.pid

6. databases:设置数据库的数量,默认数据库id0,可以使用SELECT <dbid>命令在连接上指定数据库id

配置示例:

databases 16

7. save:指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合,配置格式为:save <seconds> <changes>

redis默认配置:

save 900 1

save 300 10

save 60 10000

8. rdbcompression:设置数据是否进行压缩存储,默认为yesredis使用LZF压缩。

配置示例:

rdbcompression yes

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

配置示例:

dbfilename dump.rdb

10. dir:指定本地数据库存放目录,默认为"./",即redis安装目录。

配置示例:

dir ./

11. maxmemory:设置redis最大内存限制。redis在启动时会把数据加载到内存中,达到最大内存后,redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。redis新的vm机制,会把Key存放在内存,Value存放在swap区。

配置格式:

maxmemory <bytes>

12. 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法。

hash-max-zipmap-entries 64

hash-max-zipmap-value 512

13. activerehashing:指定是否激活重置哈希,默认为yes

配置示例:

activerehashing yes

14. include:指定包含其它的配置文件,可以在同一主机上多个redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

配置示例:

include /path/to/local.conf

 

日志相关:

1. loglevel:指定日志记录的级别,一共4个级别:debugverbosenoticewarning,默认为verbose

配置示例:

loglevel notice

2. logfile:设置日志记录方式,默认为标准输出,如果配置redis以守护进程方式运行,而这里又配置日志记录方式为标准输出,则日志将会发送给/dev/null

配置示例(这里配置为标准输出):

logfile stdout

3. appendonly:是否在每次更新操作后进行日志记录,即是否采用日志记录方式(aof)进行数据持久化,默认为no,采用快照方式进行持久化(snapshotting)。若设置为noredis会根据“save”配置参数设置的条件将内存中的数据同步到磁盘中,这可能会在服务器断电时丢失一些数据。

配置示例:

appendonly no

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

配置示例:

appendfilename appendonly.aof

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

no:表示等操作系统进行数据缓存同步到磁盘(快)

always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)

everysec:表示每秒同步一次(折衷,默认值)

配置示例:

appendfsync everysec

 

虚拟内存机制相关:

1. vm-enabled:是否启用虚拟内存机制,默认值为noVM机制将数据分页存放,由redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中。

配置示例:

vm-enabled no

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

配置示例:

vm-swap-file /tmp/redis.swap

3. vm-max-memory:将所有大于vm-max-memory的数据存入虚拟内存,默认为0。无论vm-max-memory设置多小,所有索引数据都是内存存储的(redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。

配置示例:

vm-max-memory 0

4. vm-page-sizeredis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的数据大小来设定的,如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很多大对象,则可以使用更大的page,如果不确定,就使用默认值。

配置示例:

vm-page-size 32

5. vm-pages:设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,在磁盘上每8pages将消耗1byte的内存。

配置示例:

vm-pages 134217728

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

配置示例:

vm-max-threads 4

 

客户端相关:

1. timeout:当客户端闲置多长时间后关闭连接,若指定为0则表示关闭该功能。

配置示例:

timeout 0

2. maxclients:设置同一时间最大客户端连接数,默认为0,表示没有限制。redis可以同时打开的客户端连接数为redis进程可以打开的最大文件描述符数。当客户端连接数到达限制时,redis会关闭新的连接并向客户端返回错误:max number of clients reached

配置示例:

maxclients 1000

3. glueoutputbuf:在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启。

配置示例:

glueoutputbuf yes

 

复制相关:

1. slaveof:当本机为slave服务时,设置master服务的IP地址及端口,在redis启动时,它会自动从master进行数据同步。

配置格式:

slaveof <masterip> <masterport>

2. masterauth:当master服务设置了密码保护时,slave服务连接master的密码。

配置示例:

masterauth mypass

 

以上是关于Redis配置的主要内容,如果未能解决你的问题,请参考以下文章

如何在redis配置文件中查看redis版本

Redis6.0.9配置redis集群

dtcms5.0 redis怎么配置

windows下redis配置文件是哪个

Redis系列--2Redis配置

Redis配置详解