Redis中的主要配置项如下:
(1)daemonize yes 它表示是否在后台运行,如果写成yes,那么在后台运行,如果是no,则表示不在后台运行。
(2)pidfile /var/run/redis.pid 当Redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,我们也可以在运行多个Redis服务时,指定不同的pid文件和端口
(3)port 6379 指定Redis运行的端口,默认是6379
(4)127.0.0.1 在它之前通常有#bind,它表示指定Redis只接收来自该IP地址的请求,如果不进行设置,那么将处理所有请求,在生产环境下最好设置该选项。
(5)timeout 0 它是设置客户端连接时的超时时间,单位为秒,当客户端在这段时间内没有发出任何指令,那么将会关闭该连接,如果为0则表示关闭该设置。
(6)loglevel debug 它是指定了日志的记录级别,Redis支持四个级别:debug、verbose、notice、warning。默认是verbose。其中debug记录很多信息,用于开发和测试,而verbose会相对少一些,而notice则可以理解为普通的verbose,常用语生产环境,而warning则是非常重要或者严重的信息会记录到日志。
(7)stdout logfile /var/log/redis/redis.log 它是log文件地址,默认值为stdout,也就是标准输出,如果是后台输出会输出到/dev/null。
(8)database 16 它是可用的数据库数,默认值为16,默认的数据库为0,而数据库的范围从0到(database-1)之间。
(9)save 900 1 是900秒内至少有1个key被改变,它是指出了在多少时间内,有多少次更新操作,就将数据同步到数据文件rdb,相当于条件触发抓取快照,它可以多个条件配合,也就是该命令写多个,每一个的格式都是 save <seconds> < changes>
(10)rdbcompression yes 存储至本地数据库时,也就是持久化到rdb文件时,是否压缩数据,默认为yes
(11)dbfilename dump.rdb 本地持久化数据库文件名,默认为dump.rdb
(12)dir ./ 它是工作目录,也就是数据库镜像备份的文件放置的路径,这里的路径跟文件名要分开配置是因为Redis在进行备份时,会先将数据库的状态写入到一个临时文件中,等备份完成后,再把该临时文件替换为上面所指定的文件,而这里的临时文件和上面配置的备份文件都会放在这个指定的路径中。而AOF文件也会放在这个目录中,注意这里必须是一个目录而不是文件。
(13)主服务器IP 主服务器port 这里是设置该数据库为其他数据库的从数据库,它是设置当本机为slave时,设置master的IP地址以及端口,在Redis启动时,它会自动从master中进行数据同步。它通常是写在#slaveof的下面。
(14)masterauth 密码 当master服务器设置了密码保护时,用requirepass制定密码,用slave服务器连接master时使用的密码。
(15)slave-server-stale-data yes 它是当从库同主机市区连接或者复制正在进行的时候,从库有两种运行方式,如果为yes,则从库会继续响应客户端的请求,如果是no,则除了info和slaveof命令之外的任何请求都会返回一个错误。
(16)repl-ping-slave-period 10 它是从库会按照一个时间间隔向主库发送ping,默认是10秒。
(17)repl-timeout 60 它是设置主库批量数据传输时间或者ping回复时间间隔,默认是60秒,它一定要比repl-ping-slave-period大才行。
(18)requirepass 密码 它设置客户端连接后进行任何其他指定前需要使用的密码。因为Redis的速度相当快,因此在一台比较好的服务器下,一个外部的用户可以在一秒钟内进行150K次的密码尝试,这意味着我们需要指定非常强大的密码来防止暴力破解。
(19)maxclients 128 它表示设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置为0表示无限制,当客户端连接达到限制时,Redis会关闭新的链接并向客户端返回max number of clients。
(20)maxmemory <bytes> 它指定了Redis最大的内存限制,Redis在启动时会把数据加载到内存中,达到了最大内存后,Redis会先尝试清楚已经到期或者即将到期的key,同时也会移除空的list对象,在Redis实现了vm机制之后,它会把key放到内存,把value放到虚拟内存中。如果没有该机制的时候,如果达到了最大内存限制,就无法再进行写入操作,但是仍然可以进行读取操作。该设置更适合把Redis当做一个Memcached这样的缓存来用,而不是一个数据库,当我们把Redis当做一个真实的数据库使用的时候,内存使用将是一个非常大的开销。
(21)maxmemory-policy volatile-lru 它是当内存达到最大值的时候Redis会删除数据所使用的方法,它总共有五种方式可以选择:①volatile-lru ,它是使用LRU算法移除设置过过期时间的key,所谓LRU也就是Least Recently Used ②allkeys-lur,它利用LRU算法移除任何key ③volatile-random 它移除设置过过期时间的随机key ④volatile-ttl 它移除即将过期的key ⑤不移除任何key,只是返回一个写错误。
(22)appendonly no 在默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果突然断电,那么将会造成较大范围的数据丢失,因此Redis提供了另外一种更加高效的数据库备份以及灾难恢复方式。当我们开启了appendonly模式之后,Redis会把接受到的每一次写操作都追加到appendonly.aof中,当Redis重启后,会从该文件恢复出之前的状态,如果appendonly.aof文件过大,我们还可以使用bgrewriteaof来对appendonly.aof进行重新整理。
(23)appendfilename appendonly.aof 它是AOF文件的名称,默认是appendonly.aof。
(24)appendfsync everysec 它是Redis支持的同步AOF文件的策略,如果是no表示不进行同步,也就是系统去操作,如果是everysec则是表示对写操作进行累积,每秒同步一次,而always表示每次有写操作的时候都进行同步。
(25)auto-aof-rewrite-percentage 100 或者 auto-aof-rewrite-min-size 64mb 它是当AOF文件增长到一定大小的时候Redis能够调用bgrewriteaof对日志文件进行重写,它的原理是这样的:Redis会记住上次进行写日志后文件的大小进行比较,如果现在的大小比基础大小大指定的百分比,那么重写功能将会自动开启,我们一般还会指定一个最小大小用于AOF重写,它用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况。如果我们设置percentage为0,则关闭这个特性。如果从开机以来还没有进行过重写,那么日志大小在开机的时候确定。
(26)slowlog-log-slower-than 10000 这里的单位是微妙, 我们用slow log来记录超过特定时间的命令,注意这里的执行时间不包括诸如连接客户端,返回结果等时间,它说的只是执行时间,它这里的单位是微妙。
(27)slowlog-max-len 1024 它是当一个新命令被记录的时候最早的命令会被从队列中剔除,它对日志长度没有限制,但是它会消耗内存,我们可以通过slowlog reset来回收被慢日志消耗的内存。
原文地址:http://blog.csdn.net/xinguimeng/article/details/43917559