Redis配置
Posted 编程人,在天涯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis配置相关的知识,希望对你有一定的参考价值。
一、Redis配置项查看
redis配置文件在其安装目录下的etc子目录中,文件名为redis.conf。也可以通过config命令查看redis的配置项:
其中”config get *”表示查询所有配置,这里只截取其中几个配置项展示。
二、Redis配置项说明
服务器相关:
1. bind:redis绑定的主机地址。
配置示例:
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:设置数据库的数量,默认数据库id为0,可以使用SELECT <dbid>命令在连接上指定数据库id。
配置示例:
databases 16
7. save:指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合,配置格式为:save <seconds> <changes>
redis默认配置:
save 900 1
save 300 10
save 60 10000
8. rdbcompression:设置数据是否进行压缩存储,默认为yes。redis使用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个级别:debug、verbose、notice、warning,默认为verbose。
配置示例:
loglevel notice
2. logfile:设置日志记录方式,默认为标准输出,如果配置redis以守护进程方式运行,而这里又配置日志记录方式为标准输出,则日志将会发送给/dev/null。
配置示例(这里配置为标准输出):
logfile stdout
3. appendonly:是否在每次更新操作后进行日志记录,即是否采用日志记录方式(aof)进行数据持久化,默认为no,采用快照方式进行持久化(snapshotting)。若设置为no,redis会根据“save”配置参数设置的条件将内存中的数据同步到磁盘中,这可能会在服务器断电时丢失一些数据。
配置示例:
appendonly no
4. appendfilename:指定更新日志文件名,默认为appendonly.aof。
配置示例:
appendfilename appendonly.aof
5. appendfsync:指定更新日志的条件,有3个可选值:
no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折衷,默认值)
配置示例:
appendfsync everysec
虚拟内存机制相关:
1. vm-enabled:是否启用虚拟内存机制,默认值为no。VM机制将数据分页存放,由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-size:redis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的数据大小来设定的,如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很多大对象,则可以使用更大的page,如果不确定,就使用默认值。
配置示例:
vm-page-size 32
5. vm-pages:设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是在放在内存中的,在磁盘上每8个pages将消耗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配置的主要内容,如果未能解决你的问题,请参考以下文章