[redis] redis配置文件redis.conf的详细说明
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[redis] redis配置文件redis.conf的详细说明,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含13043字,纯文字阅读大概需要19分钟。
内容图文
1 # Redis 配置文件 2 3 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) 4 # 5 # 1k => 61000 bytes 7 # 1kb => 1024 bytes 8 # 1m => 1000000 bytes 9 # 1mb => 101024*1024 bytes 11 # 1g => 1000000000 bytes 12 # 1gb => 1024*1024*1024 13bytes 14# 15# 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB 16 17# daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes 18daemonize 19yes 20 21 # 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。 22# 23当运行多个redis服务时,需要指定不同的pid文件和端口 24 pidfile /var/run/redis.pid 25 26# 指定redis运行的端口,默认是6379 27 port 6379 28 29# 指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求, 30# 在生产环境中最好设置该项 31# bind 32127.0.0.1 33 34 # Specify the path for the unix socket that will be used to listen for 35# 36 incoming connections. There is no default, so Redis will not listen 37# on a 38unix socket when not specified. 39# 40 # unixsocket /tmp/redis.sock 41# 42 unixsocketperm 755 43 44# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接 45# 0是关闭此设置 46timeout 470 48 49# 指定日志记录级别 50# Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose 51# 52debug 记录很多信息,用于开发和测试 53# varbose 有用的信息,不像debug会记录那么多 54# 55notice 普通的verbose,常用于生产环境 56# warning 只有非常重要或者严重的信息会记录到日志 57loglevel 58debug 59 60# 配置log文件地址 61 # 默认值为stdout,标准输出,若后台模式会输出到/dev/null 62#logfile 63stdout 64 logfile /var/log/redis/redis.log 65 66 # To enable logging to the system logger, just set‘syslog-enabled‘ to 67yes, 68# and optionally update the other syslog parameters to suit your 69needs. 70 # syslog-enabled no 71 72# Specify the syslog identity. 73 # syslog-ident redis 74 75 # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. 76# 77 syslog-facility local0 78 79# 可用数据库数 80 # 默认值为16,默认数据库为0,数据库范围在0-(database-1)之间 81 databases 16 82 83################################ 快照 84################################# 85# 86# 保存数据到磁盘,格式如下: 87# 88# save 89 <seconds> <changes> 90# 91# 92指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。 93# 相当于条件触发抓取快照,这个可以多个条件配合 94# 95# 96比如默认配置文件中的设置,就设置了三个条件 97# 98 # save 9001 900秒内至少有1个key被改变 99 # save 30010010 300秒内至少有300个key被改变 101 # save 6010000 60秒内至少有10000个key被改变 102103 save 9001104 save 30010105 save 6010000106107# 存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes 108rdbcompression yes 109110# 本地持久化数据库文件名,默认值为dump.rdb 111dbfilename dump.rdb 112113# 工作目录 114# 115# 数据库镜像备份的文件放置的路径。 116# 117这里的路径跟文件名要分开配置是因为redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时, 118# 119再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。 120# 121# 122AOF文件也会存放在这个目录下面 123# 124# 注意这里必须制定一个目录而不是文件 125 dir ./ 126127################################# 复制 128################################# 129130# 主从复制. 设置该数据库为其他数据库的从数据库. 131# 132设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步 133# 134# slaveof 135 <masterip> <masterport> 136137# 当master服务设置了密码保护时(用requirepass制定的密码) 138# slav服务连接master的密码 139# 140# 141 masterauth <master-password> 142143144# 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式: 145# 146 # 1) 147 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求 148# 149 # 2) 150 如果slave-serve-stale-data是指为no,出去INFO和SLAVOF命令之外的任何请求都会返回一个 151 # 错误"SYNC with 152 master in progress" 153# 154 slave-serve-stale-data yes 155156 # 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒 157# 158# 159 repl-ping-slave-period 10160161 # repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒 162# 163 一定要确保repl-timeout大于repl-ping-slave-period 164 # repl-timeout 60165166################################## 安全 167################################### 168169# 设置客户端连接后进行任何其他指定前需要使用的密码。 170# 171警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解 172# 173# 174requirepass foobared 175176# 命令重命名. 177# 178# 在一个共享环境下可以重命名相对危险的命令。比如把CONFIG重名为一个不容易猜测的字符。 179# 180# 181举例: 182# 183 # rename-command CONFIG 184b840fc02d524045429941cc15f59e41cb7be6c52 185# 186# 187 如果想删除一个命令,直接把它重命名为一个空字符""即可,如下: 188# 189 # rename-command CONFIG ""190191################################### 约束 192#################################### 193194# 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数, 195# 如果设置 196 maxclients 0,表示不作限制。 197# 当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients 198reached错误信息 199# 200 # maxclients 128201202# 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key 203# 204Redis同时也会移除空的list对象 205# 206# 207当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作 208# 209# 210注意:Redis新的vm机制,会把Key存放内存,Value会存放在swap区 211# 212# 213maxmemory的设置比较适合于把redis当作于类似memcached的缓存来使用,而不适合当做一个真实的DB。 214# 215当把Redis当做一个真实的数据库使用的时候,内存使用将是一个很大的开销 216 # maxmemory <bytes> 217218# 当内存达到最大值的时候Redis会选择删除哪些数据?有五种方式可供选择 219# 220 # volatile-lru -> 221利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used ) 222 # allkeys-lru -> 223利用LRU算法移除任何key 224 # volatile-random -> 移除设置过过期时间的随机key 225# 226 allkeys->random -> remove a random key, any key 227 # volatile-ttl -> 228移除即将过期的key(minor TTL) 229 # noeviction -> 不移除任何可以,只是返回一个写错误 230# 231# 232注意:对于上面的策略,如果没有合适的key可以移除,当写的时候Redis会返回一个错误 233# 234 # 写命令包括: set setnx 235setex append 236# incr decr rpush lpush rpushx lpushx linsert lset 237rpoplpush sadd 238# sinter sinterstore sunion sunionstore sdiff sdiffstore 239zadd zincrby 240# zunionstore zinterstore hset hsetnx hmset hincrby incrby 241decrby 242# getset mset msetnx exec sort 243# 244# 默认是: 245# 246# 247 maxmemory-policy volatile-lru 248249# LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。 250# 251 Redis默认的灰选择3个样本进行检测,你可以通过maxmemory-samples进行设置 252# 253 # maxmemory-samples 2543255256############################## AOF ############################### 257258259# 260默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失。 261# 262所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。 263# 开启append 264only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。 265# 266但是这样会造成appendonly.aof文件过大,所以redis还支持了BGREWRITEAOF指令,对appendonly.aof 进行重新整理。 267# 268你可以同时开启asynchronous dumps 和 AOF 269270appendonly no 271272 # AOF文件名称 (默认: "appendonly.aof") 273# appendfilename appendonly.aof 274275# Redis支持三种同步AOF文件的策略: 276# 277# no: 不进行同步,系统去操作 . Faster. 278# always: 279always表示每次有写操作都进行同步. Slow, Safest. 280# everysec: 表示对写操作进行累积,每秒同步一次. 281Compromise. 282# 283 # 默认是"everysec",按照速度和安全折中这是最好的。 284# 285 如果想让Redis能更高效的运行,你也可以设置为"no",让操作系统决定什么时候去执行 286# 287 或者相反想让数据更安全你也可以设置为"always"288# 289 # 如果不确定就用 "everysec". 290291# appendfsync always 292appendfsync everysec 293# appendfsync no 294295 # AOF策略设置为always或者everysec时,后台处理进程(后台保存或者AOF日志重写)会执行大量的I/O操作 296# 297在某些Linux配置中会阻止过长的fsync()请求。注意现在没有任何修复,即使fsync在另外一个线程进行处理 298# 299# 300 为了减缓这个问题,可以设置下面这个参数no-appendfsync-on-rewrite 301# 302 # This means that while303 another child is saving the durability of Redis is304 # the same as"appendfsync 305 none", that in pratical terms means that it is306 # possible to lost up to 30307 seconds of log in the worst scenario (with the 308 # default Linux 309settings). 310# 311 # If you have latency problems turn this to "yes". Otherwise 312 leave it as313 # "no" that is the safest pick from the point of view of 314durability. 315 no-appendfsync-on-rewrite no 316317# Automatic rewrite of the append only file. 318# AOF 自动重写 319# 320当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写 321# 322# 323它是这样工作的:Redis会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定) 324# 325# 326基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动 327# 328同时需要指定一个最小大小用于AOF重写,这个用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况 329# 设置 percentage 330为0就关闭这个特性 331332 auto-aof-rewrite-percentage 100333 auto-aof-rewrite-min-size 64mb 334335################################## SLOW LOG 336################################### 337338 # Redis Slow Log 记录超过特定执行时间的命令。执行时间不包括I/O计算比如连接客户端,返回结果等,只是命令执行时间 339# 340# 341 可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微妙), 342# 343另一个是slow log 的长度。当一个新命令被记录的时候最早的命令将被从队列中移除 344345# 下面的时间以微妙微单位,因此1000000代表一分钟。 346# 347注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录 348 slowlog-log-slower-than 10000349350# 对日志长度没有限制,只是要注意它会消耗内存 351# 可以通过 SLOWLOG RESET 352回收被慢日志消耗的内存 353 slowlog-max-len 1024354355################################ VM ############################### 356357 ### WARNING! Virtual Memory is deprecated in Redis 2.4358### The use of 359 Virtual Memory is strongly discouraged. 360361# Virtual Memory allows Redis to work with datasets bigger than the 362actual 363 # amount of RAM needed to hold the whole dataset in memory. 364# In 365 order to do so very used keys are taken in memory while the other keys 366# are 367 swapped into a swap file, similarly to what operating systems do368# with 369memory pages. 370# 371 # To enable VM just set‘vm-enabled‘ to yes, and set the 372following three 373# VM parameters accordingly to your needs. 374375 vm-enabled no 376 # vm-enabled yes 377378 # This is the path of the Redis swap file. As you can guess, swap 379files 380 # can‘t be shared by different Redis instances, so make sure to use a 381swap 382 # file for every redis process you are running. Redis will complain if383the 384 # swap file is already in use. 385# 386 # The best kind of storage for the 387 Redis swap file (that‘s accessed at random)388 # is a Solid State Disk 389(SSD). 390# 391 # *** WARNING *** if you are using a shared hosting the default392of putting 393 # the swap file under /tmp is not secure. Create a dir with access 394granted 395# only to Redis user and configure Redis to create the swap file 396there. 397 vm-swap-file /tmp/redis.swap 398399 # vm-max-memory configures the VM to use at max the specified amount 400of 401 # RAM. Everything that deos not fit will be swapped on disk *if* possible, 402that 403 # is, if there is still enough contiguous space in the swap 404file. 405# 406 # With vm-max-memory 0 the system will swap everything it can. Not 407a good 408 # default, just specify the max amount of RAM you can in bytes, but 409 it‘s410# better to leave some margin. For instance specify an amount of 411RAM 412 # that‘s more or less between 60 and 80% of your free 413RAM. 414 vm-max-memory 0415416 # Redis swap files is split into pages. An object can be saved using417multiple 418 # contiguous pages, but pages can‘t be shared between different 419objects. 420 # So if your page is too big, small objects swapped out on disk will 421waste 422 # a lot of space. If you page is too small, there is less space in the 423swap 424# file (assuming you configured the same number of total swap file 425pages). 426# 427 # If you use a lot of small objects, use a page size of 64 or 32428bytes. 429# If you use a lot of big objects, use a bigger page size. 430# If 431 unsure, use the default :) 432 vm-page-size 32433434 # Number of total memory pages in the swap file. 435# Given that the page 436 table (a bitmap of free/used pages) is taken in memory, 437 # every 8 pages on 438 disk will consume 1byte of RAM. 439# 440 # The total swap size is vm-page-size * 441 vm-pages 442# 443 # With the default of 32-bytes memory pages and 134217728 pages 444Redis will 445 # use a 4 GB swap file, that will use 16 MB of RAM for the page 446table. 447# 448 # It‘s better to use the smallest acceptable value for your 449application, 450 # but the defaultis large in order to work in most 451conditions. 452 vm-pages 134217728453454 # Max number of VM I/O threads running at the same time. 455# This threads 456 are used to read/write data from/to swap file, since they 457# also encode and 458 decode objects from disk to memory or the reverse, a bigger 459# number of 460 threads can help with big objects even if they can‘t help with461 # I/O itself 462as the physical device may not be able to couple with many 463 # reads/writes 464operations at the same time. 465# 466 # The special value of 0 turn off threaded 467 I/O and enables the blocking 468# Virtual Memory 469implementation. 470 vm-max-threads 4471472############################### ADVANCED CONFIG 473############################### 474475# 当hash中包含超过指定元素个数并且最大的元素没有超过临界时, 476# 477hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值 478# Redis 479Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现, 480# 481这个Hash的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value 482redisObject的encoding为zipmap, 483# 484当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。 485 hash-max-zipmap-entries 486512487 hash-max-zipmap-value 64488489# list数据类型多少节点以下会采用去指针的紧凑存储格式。 490# 491list数据类型节点值大小小于多少字节会采用紧凑存储格式。 492 list-max-ziplist-entries 493512494 list-max-ziplist-value 64495496# set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。 497set-max-intset-entries 498512499500# zsort数据类型多少节点以下会采用去指针的紧凑存储格式。 501# 502zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。 503 zset-max-ziplist-entries 504128505 zset-max-ziplist-value 64506507# Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用 508# 509# 510当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。 511# 512# 513如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存 514activerehashing yes 515516################################## INCLUDES 517################################### 518519# 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件 520# 521 include /path/to/local.conf 522 # include /path/to/other.conf
原文:http://www.cnblogs.com/fvsfvs123/p/4218922.html
内容总结
以上是互联网集市为您收集整理的[redis] redis配置文件redis.conf的详细说明全部内容,希望文章能够帮你解决[redis] redis配置文件redis.conf的详细说明所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。