redis主要启动主要参数与配置文件说明(redis 2.8) 

一、redis启动参数

通过redis-server –help来查看主要启动参数:

用法主要有以下几种:

(1)redis-server [指定的配置文件redis.conf位置] [参数options]

参数options主要是配置文件中相关参数

(2)redis-server -V|–Version 显示当前redis版本

二、redis配置文件:

(1)daemonize :是否以守护进程的形式启动(后台启动)

用法:daemonize yes|no

默认值为:no

如:

daemonize no

(2)pidfile:指定redis.pid文件地址(其内容为redis对应的进程号)

用法:pidfile 文件路径

默认值:/var/run/redis.pid

如:

pidfile /var/run/redis.pid

(3)port:redis启动使用的端口号

用法:port 端口号

默认值:6379

如:

port 6379

(4)bind:监听的IP地址

用法:bind IP地址

默认值:127.0.0.1

如:

bind 127.0.0.1

(5)指定监听unix套接字socket的文件的位置

用法:unixsocket 文件地址

默认值:/tmp/redis.sock

如:

unixsocket /tmp/redis.sock

(6)设置unix套接字文件的权限

用法:unixsocketperm 权限值

默认值:755

如:

unixsocketperm 755

(7)连接超时时间(客户端空闲多长时间,关闭链接。0表示不关闭)

用法:timeout 时间值

默认值:0

如:

timeout 0

(8)保持tcp连接的时间

用法:tcp-keepalive 时间

默认值:0

如:

tcp-keepalive 0

(9)日志级别loglevel

用法:loglevel 日志级别

日志级别可选值:

debug :一些提示信息,对开发与测试很有用

verbose:有很多有用的信息

notice:选择适当的verbose信息

warning:只记录重要的而且的严重的信息

默认值:notice

如:

loglevel notice

(10)指定日志文件:可以保存在文件中或者输出到屏幕上

用法:logfile 日志文件地址|stdout

默认值:stdout(标准输出)

如:

logfile /var/logs/redis.log

(11)是否启用系统日志

用法:syslog-enabled yes|no

默认值:no

如:

syslog-enabled no

(11)指定系统日志身份

用法:syslog-ident 身份

默认值:redis

如:

syslog-ident redis

(12)指定syslog的设备,必须是用户或者在LOCAL0-LOCAL7这八个数中取值

用法:syslog-facility 设备

默认值:local0

如:

syslog-facility local0

(13)设置redis的字典(数据库)数目:字典编号是从0开始的

用法:databases 字典数目

默认值:16

如:

databases 16

(14)数据持久化设置之保存频率设置:这个频率不是时间,也是一个条件,它定期将内存数据保存到硬盘上

用法:save 时间秒数 变化的键数

即在一定时间段内,至少变化多少个键时才保存到硬盘上

如:

save 900 1   #表示在900秒内至少有1个键的值发生改变时才保存
save 300 10  #表示在300秒内至少有10个键的值发生变化时才保存

(15)数据持久化设置之停止写入数据条件:当出现错误(可能是硬盘错误、权限不够、或者其他错误)时停止写入数据

用法:stop-writes-on-bgsave-error yes|no

默认值:yes

如:

stop-writes-on-bgsave-error yes

(16)是否在保存持久化文件时对文件rdb进行压缩

用法:rdbcompression yes|no

默认值:yes

如:

rdbcompression yes

(17)在保存持久化文件时是否检查条目数,这在一定程度会影响redis的性能

用法:rdbchecksum yes|no

默认值:yes

如:

rdbchecksum yes

(18)指定持久化文件的文件名

用法:dbfilename 文件名

默认值:dump.rdb

如:

dbfilename redis-2015-02.rdb

(19)指定redis持久化文件目录

用法:dir 目录

默认值:./

如:

dir ../data

(20)设置redis主从之从redis设置:

用法:slaveof 主redis的IP 主redis的端口

如:

slaveof 127.0.0.1 6380

(20)设置redis主从之主redis验证密码

用法:masterauth 主redis验证密码

如:

masterauth 123456

(21)当从redis服务器断开与主redis服务器的连接,从redis是否响应客户端请求

说明:当从redis服务器断开与主redis服务器的连接时,从服务器可以通过以下两种方式响应客户端请求:

第一种:当slave-serve-stale-data这个参数设置为yes,则从服务器还会正常响应客户端请求,但是因为没有与主服务器同步数据,因此数据可能不完整。

第二种:当slave-serve-stale-data这个参数设置为no,则从服务器会响应”SYNC with master in progress”(正在与主服务器同步)这样的提示,但info和slaveof命令除外

用法:slave-serve-stale-data yes|no

默认值:yes

如:

slave-serve-stale-data yes

(22)设置从服务器只读(redis 2.6添加的参数)

用法:slave-read-only yes|no

默认值:yes

如:

slave-read-only yes

(23)设置从服务器发送ping命令的间隔时间

用法:repl-ping-slave-period 时间(秒)

默认值:10

如:

repl-ping-slave-period 10

(25)设置批量传输读写数据或ping响应的超时时间

用法:repl-timeout 时间(秒)

默认值:60

如:

repl-timeout 60

(26)是否不用将数据包拼接成大包再进行发送

TCP_NODELAY 不使用Nagle算法,不会将小包进行拼接成大包再进行发送,直接将小包发送出去,会使得小包时候用户体验非常

用法:repl-disable-tcp-nodelay yes|no

如:

repl-disable-tcp-nodelay no

(27)当前从服务器的优先级

用法:slave-priority 优先级

默认值:100

如:

slave-priority 100

(28)redis服务器是否启用密码,如果启用则填写密码,如果不启用则将本项注释掉

用法:requirepass 密码

默认:没有密码

如:

requirepass 123456

(29)给redis命令起一个别名

用法:rename-command 命令 命令别名

如:

rename-command mget mg

(30)客户端最大连接数设置

用法:maxclients 连接数

默认值:10000

如:

maxclients 10000

(31)最大可使用的内存限制设置:(单元bytes即B)

用法:maxmemory 内存值

如:

maxmemory 1000000;

(32)当数据满之后数据删除的算法:

用法:maxmemorty-policy 算法

可用的算法:

volatile-lru -> 使用LRU算法来删除过期的set

allkeys-lru -> 删除任何遵循LRU算法的key

volatile-random ->随机地删除过期set中的key

allkeys->random -> 随机地删除一个key

volatile-ttl -> 删除最近即将过期的key(the nearest expire time (minor TTL))

noeviction -> 根本不过期,写操作直接报错

默认值:volatile-lru

如:

maxmemory-policy volatile-lru

(33)数据删除时采用的样本数

对于处理redis内存来说,LRU和minor TTL算法不是精确的,而是近似的(估计的)算法。所以我们会检查某些样本来达到内存检查的目的。默认的样本数是3,你可以修改它。

用法:maxmemorty-samples 数字

如:

maxmemory-samples 3

(34)是否开启通过appendonly的方式添加持久化数据(aof与rdb是两种不同的持久化策略)

默认情况下,Redis会异步的把数据保存到硬盘。如果你的应用场景允许因为系统崩溃等极端情况而导致最新数据丢失#的话,那这种做法已经很ok了。否则你应该打开‘append only’模式,开启这种模式后,Redis会在#appendonly.aof文件中添加每一个写操作,这个文件会在Redis启动时被读取来在内存中重新构建数据集。

注意:如果你需要,你可以同时开启‘append only’模式和异步dumps模式(你需要注释掉上面的‘save’表达式来禁#止dumps),这种情况下,Redis重建数据集时会优先使用appendonly.aof而忽略dump.rdb

用法:appendonly yes|no

默认值:no

如:

appendonly no

(35)通过aof持久化数据时保存的文件名称

用法:appendfilename 文件名称

默认:appendonly.aof

如:

appendfilename appendonly.aof

(36)将内存数据同步到硬盘中的三种模式:

第一种:no:不fsync, 只是通知OS可以flush数据了,具体是否flush取决于OS.性能更好.

第二种:always: 每次写入append only 日志文件后都会fsync . 性能差,但很安全.

第三种:everysec: 没间隔1秒进行一次fsync. 折中

用法:appendfsync no|always|everysec

如:

appendfsync everysec

(37)自动重写aof文件百分比

用法:auto-aof-rewrite-percentage

如:

auto-aof-rewrite-percentage 100

(38)自动重写aof文件的最小大小

用法:auto-aof-rewirte-min-size 大小

如:

auto-aof-rewrite-min-size 64mb

(39)Lua脚本执行时间限制(毫秒):最大执行时间

用法:lua-time-limit 时间

如:

lua-time-limit 5000

(40)慢(查询或写入)日志最小时间:(微秒)

用法:slowlog-log-slower-than 微秒数

如:

slowlog-log-slower-than 10000

(41)慢日志最大占用的内存数

用法:slowlog-max-len 内存数

如:

slowlog-max-len 128

(42)Hash编码使用高速内存数据结构的条目阈值

如果redisObject的type 成员值是 REDIS_LIST 类型的,则当该list 的 elem数小于配置值: hash-max-ziplist-entries 或者elem_value字符串的长度小于 hash-max-ziplist-value, 则可以编码成 REDIS_ENCODING_ZIPLIST 类型存储,以节约内存. 否则采用 Dict 来存储

用法:hash-max-ziplist-entries 元素(项)的数目

如:

hash-max-ziplist-entries 512

用法:hash-max-ziplist-value 元素的长度

如:

hash-max-ziplist-value 64

(43)链表编码使用调整内存数据结构的条目阈值设置

相同哈希值的列表可以用特殊的表示方式存储,以节约空间

如 type 是 REDIS_LIST 类型的,如果其 entry 小于配置值: list-max-ziplist-entries 或 value字符串的长度小于 list-max-ziplist-value,则可以编码成 REDIS_ENCODING_ZIPLIST 类型存储,以节约内存; 否则采用 REDIS_ENCODING_LINKEDLIST 来存储

用法:list-max-ziplist-entries 元素数目

如:list-max-ziplist-entries 512

用法:list-max-ziplist-value 元素的长度

如:

list-max-ziplist-value 64

(44)集合编码使用调整内存数据结构的条目阈值设置

如 type 是 REDIS_SET 类型的,如果其值可以表示成数字类型且 entry 小于配置值set-max-intset-entries, 则可以编码成 REDIS_ENCODING_INTSET 类型存储,以节约内存; 否则采用 Dict类型来存储

用法:set-max-intset-entries 元素条目数

如:

set-max-intset-entries 512

(45)有序集合编码时使用调整内存数据结构的条目阈值设置

用法:zset-max-ziplist-entries 元素条目数

如:zset-max-ziplist-entries 128

用法:zset-max-ziplist-value 元素长度

如:

zset-max-ziplist-value 64

(46)重建hash表时,如果内存不足,是否尽快释放内存

重建hash表的时候如果内存不足 如果此值设置为no则延时,如果为yes则尽快释放内存

用法:activerehashing yes|no

如:

activerehashing yes

(47)客户端输出缓冲区大小限制:根据不同的客户端可以有不同的设置

主要客户端可以分为:

第一种: normal -> 普通客户端

第二种: slave -> 从服务器客户端和监控客户端

第三种: pubsub -> 至少订阅了一个频道或模式的订阅客户端

用法:client-output-buffer-limit 客户端 硬性限制 软性限制 软性时间限制

如:

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

(48)设置Redis后台任务执行频率,比如清除过期键任务:值在1到500之间,建议不要超过100,在10至100之间为最佳

用法:hz 任务数 
默认值:10 
如:

hz 10

(49)当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次。这有助于更快写入文件到磁盘避免延迟

用法:aof-rewrite-incremental-fsync yes|no

如:

aof-rewrite-incremental-fsync yes

(50)加载其他redis配置文件

用法:include 文件地址

如:

include redis-6380.conf