在Redis中直接启动redis-server服务时, 採用的是默认的配置文件。採用redis-server   xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务。

依照本Redis学习笔记中Redis的依照方式依照后,Redis的配置文件是/etc/redis/6379.conf。以下是Redis2.8.9的配置文件各项的中文解释。

#daemonize no  默认情况下, redis 不是在后台运行的。假设须要在后台运行,把该项的值更改为 yes
daemonize yes
# 当 redis 在后台运行的时候。 Redis 默认会把 pid 文件放在 /var/run/redis.pid 。你能够配置到其它地址。 # 当运行多个 redis 服务时,须要指定不同的 pid 文件和port
pidfile /var/run/redis_6379.pid
# 指定 redis 运行的port,默认是 6379
port 6379
# 在高并发的环境中。为避免慢client的连接问题,须要设置一个快速后台日志
tcp-backlog 511
# 指定 redis 仅仅接收来自于该 IP 地址的请求,假设不进行设置,那么将处理全部请求
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1
# 设置client连接时的超时时间,单位为秒。当client在这段时间内没有发出不论什么指令,那么关闭该连接
# 0 是关闭此设置
timeout 0
# TCP keepalive
# 在 Linux 上,指定值(秒)用于发送 ACKs 的时间。注意关闭连接须要双倍的时间。默觉得 0 。 tcp-keepalive 0
# 指定日志记录级别,生产环境推荐 notice
# Redis 总共支持四个级别: debug 、 verbose 、 notice 、 warning ,默觉得 verbose
# debug 记录非常多信息。用于开发和測试
# varbose 实用的信息,不像 debug 会记录那么多
# notice 普通的 verbose ,经常使用于生产环境
# warning 仅仅有非常重要或者严重的信息会记录到日志
loglevel notice
# 配置 log 文件地址
# 默认值为 stdout ,标准输出。若后台模式会输出到 /dev/null 。
logfile /var/log/redis/redis.log
# 可用数据库数
# 默认值为 16 ,默认数据库为 0 。数据库范围在 0- ( database-1 )之间
databases 16
################################ 快照#################################
# 保存数据到磁盘,格式例如以下 :
# save <seconds> <changes>
# 指出在多长时间内。有多少次更新操作。就将数据同步到数据文件 rdb 。
# 相当于条件触发抓取快照。这个能够多个条件配合
# 比方默认配置文件里的设置,就设置了三个条件
# save 900 1 900 秒内至少有 1 个 key 被改变
# save 300 10 300 秒内至少有 300 个 key 被改变
# save 60 10000 60 秒内至少有 10000 个 key 被改变
# save 900 1
# save 300 10
# save 60 10000
# 后台存储错误停止写。
stop-writes-on-bgsave-error yes
# 存储至本地数据库时(持久化到 rdb 文件)是否压缩数据,默觉得 yes
rdbcompression yes
# RDB 文件的是否直接偶像 chcksum
rdbchecksum yes
# 本地持久化数据库文件名称。默认值为 dump.rdb
dbfilename dump.rdb
# 工作文件夹
# 数据库镜像备份的文件放置的路径。
# 这里的路径跟文件名称要分开配置是由于 redis 在进行备份时。先会将当前数据库的状态写入到一个暂时文件里,等备份完毕。
# 再把该该暂时文件替换为上面所指定的文件,而这里的暂时文件和上面所配置的备份文件都会放在这个指定的路径其中。
# AOF 文件也会存放在这个文件夹以下
# 注意这里必须制定一个文件夹而不是文件
dir /var/lib/redis-server/
################################# 复制 #################################
# 主从复制 . 设置该数据库为其它数据库的从数据库 .
# 设置当本机为 slav 服务时,设置 master 服务的 IP 地址及port,在 Redis 启动时。它会自己主动从 master 进行数据同步
# slaveof <masterip><masterport>
# 当 master 服务设置了password保护时 ( 用 requirepass 制定的password )
# slave 服务连接 master 的password
# masterauth <master-password>
# 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
# 1) 假设 slave-serve-stale-data 设置为 yes( 默认设置 ) ,从库会继续响应client的请求
# 2) 假设 slave-serve-stale-data 是指为 no 。出去 INFO 和 SLAVOF 命令之外的不论什么请求都会返回一个
# 错误 "SYNC with master in progress"
slave-serve-stale-data yes
# 配置 slave 实例是否接受写。 写 slave 对存储短暂数据(在同 master 数据同步后能够非常easy地被删除)是实用的,但未配置的情况下,client写可能会发送问题。 # 从 Redis2.6 后,默认 slave 为 read-only
slaveread-only yes
# 从库会依照一个时间间隔向主库发送 PINGs. 能够通过 repl-ping-slave-period 设置这个时间间隔,默认是 10 秒
# repl-ping-slave-period 10
# repl-timeout 设置主库批量传输数据时间或者 ping 回复时间间隔,默认值是 60 秒
# 一定要确保 repl-timeout 大于 repl-ping-slave-period
# repl-timeout 60
# 在 slave socket 的 SYNC 后禁用 TCP_NODELAY
# 假设选择“ yes ” ,Redis 将使用一个较小的数字 TCP 数据包和更少的带宽将数据发送到 slave 。 可是这可能导致数据发送到 slave 端会有延迟 , 假设是 Linux kernel 的默认配置,会达到 40 毫秒 .
# 假设选择 "no" 。则发送数据到 slave 端的延迟会减少。但将使用很多其它的带宽用于复制 .
repl-disable-tcp-nodelay no
# 设置复制的后台日志大小。 # 复制的后台日志越大, slave 断开连接及后来可能运行部分复制花的时间就越长。
# 后台日志在至少有一个 slave 连接时,仅仅分配一次。 # repl-backlog-size 1mb
# 在 master 不再连接 slave 后。后台日志将被释放。以下的配置定义从最后一个 slave 断开连接后须要释放的时间(秒)。
# 0 意味着从不释放后台日志
# repl-backlog-ttl 3600
# 假设 master 不能再正常工作,那么会在多个 slave 中,选择优先值最小的一个 slave 提升为 master ,优先值为 0 表示不能提升为 master 。
slave-priority 100
# 假设少于 N 个 slave 连接,且延迟时间 <=M 秒。则 master 可配置停止接受写操作。
# 比如须要至少 3 个 slave 连接。且延迟 <=10 秒的配置:
# min-slaves-to-write 3
# min-slaves-max-lag 10
# 设置 0 为禁用
# 默认 min-slaves-to-write 为 0 (禁用), min-slaves-max-lag 为 10
################################## 安全 ###################################
# 设置client连接后进行不论什么其它指定前须要使用的password。 # 警告:由于 redis 速度相当快,所以在一台比較好的server下,一个外部的用户能够在一秒钟进行 150K 次的password尝试,这意味着你须要指定非常非常强大的password来防止暴力破解
# requirepass foobared
# 命令重命名 .
# 在一个共享环境下能够重命名相对危急的命令。比方把 CONFIG 重名为一个不easy推測的字符。
# 举例 :
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
# 假设想删除一个命令,直接把它重命名为一个空字符 "" 就可以,例如以下:
# rename-command CONFIG ""
################################### 约束###################################
#设置同一时间最大client连接数,默认无限制,
#Redis 能够同一时候打开的client连接数为 Redis 进程能够打开的最大文件描写叙述符数。
#假设设置 maxclients 0 ,表示不作限制。
#当client连接数到达限制时, Redis 会关闭新的连接并向client返回 max number of clients reached 错误信息
# maxclients 10000
# 指定 Redis 最大内存限制。 Redis 在启动时会把数据载入到内存中,达到最大内存后, Redis 会依照清除策略尝试清除已到期的 Key
# 假设 Redis 依照策略清除后无法提供足够空间。或者策略设置为 ”noeviction” ,则使用很多其它空间的命令将会报错,比如 SET, LPUSH 等。但仍然能够进行读取操作
# 注意: Redis 新的 vm 机制,会把 Key 存放内存。 Value 会存放在 swap 区
# 该选项对 LRU 策略非常实用。
# maxmemory 的设置比較适合于把 redis 当作于相似 memcached 的缓存来使用。而不适合当做一个真实的 DB 。 # 当把 Redis 当做一个真实的数据库使用的时候,内存使用将是一个非常大的开销
# maxmemory <bytes>
# 当内存达到最大值的时候 Redis 会选择删除哪些数据?有五种方式可供选择
# volatile-lru -> 利用 LRU 算法移除设置过过期时间的 key (LRU: 近期使用 Least RecentlyUsed )
# allkeys-lru -> 利用 LRU 算法移除不论什么 key
# volatile-random -> 移除设置过过期时间的随机 key
# allkeys->random -> remove a randomkey, any key
# volatile-ttl -> 移除即将过期的 key(minor TTL)
# noeviction -> 不移除不论什么能够,仅仅是返回一个写错误
# 注意:对于上面的策略。假设没有合适的 key 能够移除,当写的时候 Redis 会返回一个错误
# 默认是 : volatile-lru
# maxmemory-policy volatile-lru
# LRU 和 minimal TTL 算法都不是精准的算法。可是相对精确的算法 ( 为了节省内存 ) ,任意你能够选择样本大小进行检測。 # Redis 默认的灰选择 3 个样本进行检測。你能够通过 maxmemory-samples 进行设置
# maxmemory-samples 3
############################## AOF###############################
# 默认情况下, redis 会在后台异步的把数据库镜像备份到磁盘,可是该备份是非常耗时的。而且备份也不能非常频繁。假设发生诸如拉闸限电、拔插头等状况,那么将造成比較大范围的数据丢失。
# 所以 redis 提供了第二种更加高效的数据库备份及灾难恢复方式。 # 开启 append only 模式之后, redis 会把所接收到的每一次写操作请求都追加到 appendonly.aof 文件里,当 redis 又一次启动时,会从该文件恢复出之前的状态。 # 可是这样会造成 appendonly.aof 文件过大。所以 redis 还支持了 BGREWRITEAOF 指令,对 appendonly.aof 进行又一次整理。
# 你能够同一时候开启 asynchronous dumps 和 AOF
appendonly no
# AOF 文件名称称 ( 默认 : "appendonly.aof")
# appendfilename appendonly.aof
# Redis 支持三种同步 AOF 文件的策略 :
# no: 不进行同步。系统去操作 . Faster.
# always: always 表示每次有写操作都进行同步 . Slow, Safest.
# everysec: 表示对写操作进行累积,每秒同步一次 . Compromise.
# 默认是 "everysec" 。依照速度和安全折中这是最好的。 # 假设想让 Redis 能更高效的运行。你也能够设置为 "no" ,让操作系统决定什么时候去运行
# 或者相反想让数据更安全你也能够设置为 "always"
# 假设不确定就用 "everysec".
# appendfsync always
appendfsync everysec
# appendfsync no
# AOF 策略设置为 always 或者 everysec 时。后台处理进程 ( 后台保存或者 AOF 日志重写 ) 会运行大量的 I/O 操作
# 在某些 Linux 配置中会阻止过长的 fsync() 请求。 注意如今没有不论什么修复,即使 fsync 在另外一个线程进行处理
# 为了减缓这个问题,能够设置以下这个參数 no-appendfsync-on-rewrite
no-appendfsync-on-rewrite no
# AOF 自己主动重写
# 当 AOF 文件增长到一定大小的时候 Redis 能够调用 BGREWRITEAOF 对日志文件进行重写
# 它是这样工作的: Redis 会记住上次进行些日志后文件的大小 ( 假设从开机以来还没进行过重写,那日子大小在开机的时候确定 )
# 基础大小会同如今的大小进行比較。 假设如今的大小比基础大小大制定的百分比,重写功能将启动
# 同一时候须要指定一个最小大小用于 AOF 重写,这个用于阻止即使文件非常小可是增长幅度非常大也去重写 AOF 文件的情况
# 设置 percentage 为 0 就关闭这个特性
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
################################ LUASCRIPTING #############################
# 一个 Lua 脚本最长的运行时间为 5000 毫秒( 5 秒),假设为 0 或负数表示无限运行时间。
lua-time-limit 5000
################################LOW LOG################################
# Redis Slow Log 记录超过特定运行时间的命令。运行时间不包括 I/O 计算比方连接client,返回结果等,仅仅是命令运行时间
# 能够通过两个參数设置 slow log :一个是告诉 Redis 运行超过多少时间被记录的參数 slowlog-log-slower-than( 微妙 ) ,
# 还有一个是 slow log 的长度。 当一个新命令被记录的时候最早的命令将被从队列中移除
# 以下的时间以微妙为单位,因此 1000000 代表一秒。
# 注意指定一个负数将关闭慢日志,而设置为 0 将强制每一个命令都会记录
slowlog-log-slower-than 10000
# 对日志长度没有限制。仅仅是要注意它会消耗内存
# 能够通过 SLOWLOG RESET 回收被慢日志消耗的内存
# 推荐使用默认值 128 ,当慢日志超过 128 时,最先进入队列的记录会被踢出
slowlog-max-len 128
################################ 事件通知 #############################
# 当事件发生时, Redis 能够通知 Pub/Sub client。
# 能够在下表中选择 Redis 要通知的事件类型。事件类型由单个字符来标识:
# K Keyspace 事件,以 _keyspace@<db>_ 的前缀方式公布
# E Keyevent 事件。以 _keysevent@<db>_ 的前缀方式公布
# g 通用事件(不指定类型),像 DEL, EXPIRE, RENAME, …
# $ String 命令
# s Set 命令
# h Hash 命令
# z 有序集合命令
# x 过期事件(每次 key 过期时生成)
# e 清除事件(当 key 在内存被清除时生成)
# A g$lshzxe 的别称,因此 ”AKE” 意味着全部的事件
# notify-keyspace-events 带一个由 0 到多个字符组成的字符串參数。空字符串意思是通知被禁用。 # 样例:启用 list 和通用事件:
# notify-keyspace-events Elg
# 默认所用的通知被禁用,由于用户通常不须要改特性。而且该特性会有性能损耗。
# 注意假设你不指定至少 K 或 E 之中的一个。不会发送不论什么事件。
notify-keyspace-events “”
############################## 高级配置 ###############################
# 当 hash 中包括超过指定元素个数而且最大的元素没有超过临界时,
# hash 将以一种特殊的编码方式(大大减少内存使用)来存储。这里能够设置这两个临界值
# Redis Hash 相应 Value 内部实际就是一个 HashMap 。实际这里会有 2 种不同实现。
# 这个 Hash 的成员比較少时 Redis 为了节省内存会採用相似一维数组的方式来紧凑存储。而不会採用真正的 HashMap 结构,相应的 valueredisObject 的 encoding 为 zipmap,
# 当成员数量增大时会自己主动转成真正的 HashMap, 此时 encoding 为 ht 。
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
# 和 Hash 一样,多个小的 list 以特定的方式编码来节省空间。 # list 数据类型节点值大小小于多少字节会採用紧凑存储格式。
list-max-ziplist-entries 512
list-max-ziplist-value 64
# set 数据类型内部数据假设全部是数值型,且包括多少节点以下会採用紧凑格式存储。
set-max-intset-entries 512
# 和 hashe 和 list 一样 , 排序的 set 在指定的长度内以指定编码方式存储以节省空间
# zsort 数据类型节点值大小小于多少字节会採用紧凑存储格式。 zset-max-ziplist-entries 128
zset-max-ziplist-value 64
# Redis 将在每 100 毫秒时使用 1 毫秒的 CPU 时间来对 redis 的 hash 表进行又一次 hash ,能够减少内存的使用
# 当你的使用场景中,有非常严格的实时性须要,不能够接受 Redis 时不时的对请求有 2 毫秒的延迟的话,把这项配置为 no 。
# 假设没有这么严格的实时性要求,能够设置为 yes ,以便能够尽可能快的释放内存
activerehashing yes
# client的输出缓冲区的限制,由于某种原因client从server读取数据的速度不够快,
# 可用于强制断开连接(一个常见的原因是一个公布 / 订阅client消费消息的速度无法赶上生产它们的速度)。
# 能够三种不同client的方式进行设置:
# normal -> 正常client
# slave -> slave 和 MONITOR client
# pubsub -> 至少订阅了一个 pubsub channel 或 pattern 的client
# 每一个 client-output-buffer-limit 语法 :
# client-output-buffer-limit <class><hard limit> <soft limit> <soft seconds>
# 一旦达到硬限制client会马上断开,或者达到软限制并保持达成的指定秒数(连续)。
# 比如,假设硬限制为 32 兆字节和软限制为 16 兆字节 /10 秒,client将会马上断开
# 假设输出缓冲区的大小达到 32 兆字节。client达到 16 兆字节和连续超过了限制 10 秒。也将断开连接。
# 默认 normal client不做限制。由于他们在一个请求后未要求时(以推的方式)不接收数据,
# 仅仅有异步client可能会出现请求数据的速度比它能够读取的速度快的场景。
# 把硬限制和软限制都设置为 0 来禁用该特性
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb60
client-output-buffer-limit pubsub 32mb 8mb60
# Redis 调用内部函数来运行很多后台任务。如关闭client超时的连接。清除过期的 Key 。等等。
# 不是全部的任务都以同样的频率运行。但 Redis 依照指定的“ Hz ”值来运行检查任务。
# 默认情况下,“ Hz ”的被设定为 10 。 # 提高该值将在 Redis 空暇时使用很多其它的 CPU 时,但同一时候当有多个 key 同一时候到期会使 Redis 的反应更灵敏,以及超时能够更精确地处理。
# 范围是 1 到 500 之间,可是值超过 100 通常不是一个好主意。
# 大多数用户应该使用 10 这个预设值。仅仅有在非常低的延迟的情况下有必要提高最大到 100 。
hz 10
# 当一个子节点重写 AOF 文件时,假设启用以下的选项,则文件每生成 32M 数据进行同步。 aof-rewrite-incremental-fsync yes

Redis学习笔记4-Redis配置具体解释的更多相关文章

  1. Redis学习笔记1-安装配置

    一.Redis安装 Redis官网:http://www.redis.io/download 注意:版本号2.4,2.6,2.8等偶数结尾为稳定版,2.5等为非稳定版本,生成环境应该使用稳定版 下载解 ...

  2. Redis学习笔记之一 : 配置redis

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  3. Redis学习笔记——简介及配置

    1.Redis简介 Redis概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案.Redis从它的许多竞争继承来的三个主要特点:Redis数据库 ...

  4. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  5. Redis学习笔记(1) Redis介绍及基础

    1. Redis的特性 (1) 存储结构 Redis(Remote Dictionary Server,远程字典服务器)是以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis支 ...

  6. StackExchange.Redis学习笔记(一) Redis的使用初探

    Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官 ...

  7. Redis学习笔记(4) Redis事务、生存时间及排序

    1. Redis事务 Redis中的事务(transaction)是一组命令的集合,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次 ...

  8. redis学习笔记之redis简介

    redis简介 Redis是一个开源的,高性能的,基于键值对的缓存与存储系统,通过设置各种键值数据类型来适应不同场景下的缓存与存储需求.同事redis的诸多高层级功能使其可以胜任消息队列,任务队列等不 ...

  9. redis学习笔记(三)——redis的命令大全总结

    总结了一些redis五种存储类型的常用命令以及一些通用操作命令,不是很全,是在学习的时候将学到的做了个汇总,使用的时候可以查一下. 笔记写在表格里面了,不好粘贴.......后面的直接截图了..... ...

  10. Redis学习笔记(3) Redis基础类型及命令之二

    1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...

随机推荐

  1. Android平台中的三种翻页效果机器实现原理

    本文给开发者集中展现了Android平台中的三种翻页效果机器实现原理,希望能够对开发者有实际的帮助价值! 第一种翻页效果如下:     实现原理: 当前手指触摸点为a,则 a点坐标为(ax,ay), ...

  2. Node组装启动过程

    elasticsearch的启动过程是根据配置和环境组装需要的模块并启动的过程.这一过程就是通过guice注入各个功能模块并启动这些模块,从而得到一个功能完整的node.正如之前所说elasticse ...

  3. JS实现联想自动补齐功能

    <!DOCTYPE HTML> <html> <head> <meta charset = "utf-8"> <title&g ...

  4. nodeJS+socket.io传递消息

    服务器端 安装express,socket.io npm install express --save-dev npm install socket.io --save app.js const ex ...

  5. 前端切图|点击按钮div变色

    <!DOCTYPE html> <html> <head> <title>点击按钮div变色.html</title> <meta c ...

  6. 【2017中国大学生程序设计竞赛 - 网络选拔赛 hdu 6150】Vertex Cover

    [链接]点击打开链接 [题意] 有人写了一个最小点覆盖的贪心算法,然后,让你去hack它. 并且,要求这个算法得到的错误答案,是正确答案的三倍. 让你任意输出hack数据,点数<=500 [题解 ...

  7. UVA - 590Always on the run(递推)

    题目:UVA - 590Always on the run(递推) 题目大意:有一个小偷如今在计划着逃跑的路线,可是又想省机票费. 他刚開始在城市1,必须K天都在这N个城市里跑来跑去.最后一天达到城市 ...

  8. Node知识总结

    一. 伪装URL-SEO 伪URL重写 把一个动态页面的地址重写为静态页面的地址,为了方便网站的SEO优化 真实地址:http://item.jd.com/detail.php?id=12261336 ...

  9. Maven学习总结(16)——深入理解maven生命周期和插件

    在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的b ...

  10. linux内核头文件 cdev.h 解析

    遇到一个内核API--cdev_init 就找到这里来了. #ifndef _LINUX_CDEV_H #define _LINUX_CDEV_H #include <linux/kobject ...