当前位置:   article > 正文

Docker安装redis所需的配置文件redis.conf_docker redis 配置文件

docker redis 配置文件
  1. # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
  2. #
  3. # 1k => 1000 bytes
  4. # 1kb => 1024 bytes
  5. # 1m => 1000000 bytes
  6. # 1mb => 1024*1024 bytes
  7. # 1g => 1000000000 bytes
  8. # 1gb => 1024*1024*1024 bytes
  9. #
  10. # 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB
  11. # 【重要】daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes
  12. daemonize yes
  13. # 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。
  14. # 当运行多个redis服务时,需要指定不同的pid文件和端口
  15. pidfile /var/run/redis.pid
  16. # 【重要】指定redis运行的端口,默认是6379
  17. port 6379
  18. # 指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求,
  19. # 在生产环境中最好设置该项
  20. # bind 127.0.0.1
  21. # Specify the path for the unix socket that will be used to listen for
  22. # incoming connections. There is no default, so Redis will not listen
  23. # on a unix socket when not specified.
  24. #
  25. # unixsocket /tmp/redis.sock
  26. # unixsocketperm 755
  27. # 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接
  28. #【重要】 0是关闭此设置
  29. timeout 0
  30. # 指定日志记录级别
  31. # Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
  32. # debug 记录很多信息,用于开发和测试
  33. # varbose 有用的信息,不像debug会记录那么多
  34. # notice 普通的verbose,常用于生产环境
  35. # warning 只有非常重要或者严重的信息会记录到日志
  36. loglevel debug
  37. # 配置log文件地址
  38. # 默认值为stdout,标准输出,若后台模式会输出到/dev/null
  39. #logfile stdout
  40. logfile /var/log/redis/redis.log
  41. # To enable logging to the system logger, just set 'syslog-enabled' to yes,
  42. # and optionally update the other syslog parameters to suit your needs.
  43. # syslog-enabled no
  44. # Specify the syslog identity.
  45. # syslog-ident redis
  46. # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
  47. # syslog-facility local0
  48. # 可用数据库数
  49. # 默认值为16,默认数据库为0,数据库范围在0-(database-1)之间
  50. databases 16
  51. ################################ 【重要】快照 #################################
  52. #
  53. # 保存数据到磁盘,格式如下:
  54. #
  55. # save <seconds> <changes>
  56. #
  57. # 指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。
  58. # 相当于条件触发抓取快照,这个可以多个条件配合
  59. #
  60. # 比如默认配置文件中的设置,就设置了三个条件
  61. #
  62. # save 900 1 900秒内至少有1个key被改变(那就会在900秒的时候执行rdb同步)
  63. # save 300 10 300秒内至少有300个key被改变(那就会在900秒的时候执行rdb同步)
  64. # save 60 10000 60秒内至少有10000个key被改变 (那就会在60秒的时候执行rdb同步)
  65. save 900 1
  66. save 300 10
  67. save 60 10000
  68. # 存储至本地数据库时(持久化到rdb文件)是否压缩数据,默认为yes
  69. rdbcompression yes
  70. # RDB后,本地持久化数据库文件名,默认值为dump.rdb(持久化的数据都会保存在这个文件里然后准备刷盘)
  71. dbfilename dump.rdb
  72. # 工作目录
  73. #
  74. # 数据库镜像备份的文件放置的路径。
  75. # 这里的路径跟文件名要分开配置是因为redis在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成时,
  76. # 再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。
  77. #
  78. # AOF文件也会存放在这个目录下面
  79. #
  80. # 注意这里必须制定一个目录而不是文件
  81. dir ./
  82. ################################# 【重要】主从复制 #################################
  83. # 主从复制. 设置该数据库为其他数据库的从数据库.
  84. # 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
  85. # 这里永久性的设置主机IP(设置后自己视为奴隶)
  86. # slaveof <masterip> <masterport>
  87. # 当master服务设置了密码保护时(用requirepass制定的密码)
  88. # slav服务连接master的密码
  89. #
  90. # masterauth <master-password>
  91. # 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
  92. #
  93. # 1) 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求
  94. #
  95. # 2) 如果slave-serve-stale-data是指为no,出去INFO和SLAVOF命令之外的任何请求都会返回一个
  96. # 错误"SYNC with master in progress"
  97. # [stale/steɪl/ - 陈旧的]
  98. slave-serve-stale-data yes
  99. # 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒
  100. #
  101. # repl-ping-slave-period 10
  102. # 总结就是上面间隔多少秒发送一次检测存活的pingPong信号,下面就是判定发送这个信号后的返回超时时间
  103. # repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒
  104. # 一定要确保repl-timeout大于repl-ping-slave-period
  105. # repl-timeout 60
  106. ################################## 安全 ###################################
  107. # 设置客户端连接后进行任何其他指定前需要使用的密码。
  108. # 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解
  109. #
  110. requirepass 123456
  111. # 命令重命名.
  112. #
  113. # 在一个共享环境下可以重命名相对危险的命令。比如把CONFIG重名为一个不容易猜测的字符。
  114. #
  115. # 举例:
  116. #
  117. # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
  118. #
  119. # 如果想删除一个命令,直接把它重命名为一个空字符""即可,如下:
  120. #
  121. # rename-command CONFIG ""
  122. ################################### 【重要】约束 ####################################
  123. # 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,
  124. # 如果设置 maxclients 0,表示不作限制。
  125. # 当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
  126. #
  127. # maxclients 128
  128. # 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key
  129. # Redis同时也会移除空的list对象
  130. #
  131. # 当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作
  132. #
  133. # 注意:Redis新的vm机制,会把Key存放内存,Value会存放在swap区
  134. #
  135. # maxmemory的设置比较适合于把redis当作于类似memcached的缓存来使用,而不适合当做一个真实的DB。
  136. # 当把Redis当做一个真实的数据库使用的时候,内存使用将是一个很大的开销
  137. # maxmemory <bytes>
  138. # 当内存达到最大值的时候Redis会选择删除哪些数据?有五种方式可供选择
  139. #【重要 —— 面试会问】
  140. # volatile-lru -> 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )
  141. # allkeys-lru -> 利用LRU算法移除任何key
  142. # volatile-random -> 移除设置过过期时间的随机key
  143. # allkeys->random -> remove a random key, any key
  144. # volatile-ttl -> 移除即将过期的key(minor TTL)
  145. # noeviction -> 不移除任何可以,只是返回一个写错误
  146. #
  147. # 注意:对于上面的策略,如果没有合适的key可以移除,当写的时候Redis会返回一个错误
  148. #
  149. # 写命令包括: set setnx setex append
  150. # incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
  151. # sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
  152. # zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
  153. # getset mset msetnx exec sort
  154. #
  155. # 【重要】默认是:
  156. #
  157. # maxmemory-policy volatile-lru
  158. # LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。
  159. # Redis默认的灰选择3个样本进行检测,你可以通过maxmemory-samples进行设置
  160. #
  161. # maxmemory-samples 3
  162. ##############################【重要】 AOF ###############################
  163. # 默认情况下,redis会在后台异步的把数据库镜像备份到磁盘,但是该备份是非常耗时的,而且备份也不能很频繁,如果发生诸如拉闸限电、拔插头等状况,那么将造成比较大范围的数据丢失。
  164. # 所以redis提供了另外一种更加高效的数据库备份及灾难恢复方式。
  165. # 开启append only模式之后,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
  166. # 但是这样会造成appendonly.aof文件过大,所以redis还支持了BGREWRITEAOF指令,对appendonly.aof 进行重新整理。
  167. # 你可以同时开启asynchronous dumps 和 AOF
  168. appendonly no
  169. # AOF文件名称 (默认: "appendonly.aof")
  170. # appendfilename appendonly.aof
  171. # Redis支持三种同步AOF文件的策略:
  172. #
  173. # no: 不进行同步,系统去操作 . Faster.
  174. # always: always表示每次有写操作都进行同步. Slow, Safest.
  175. # everysec: 表示对写操作进行累积,每秒同步一次. Compromise.
  176. #
  177. # 默认是"everysec",按照速度和安全折中这是最好的。
  178. # 如果想让Redis能更高效的运行,你也可以设置为"no",让操作系统决定什么时候去执行
  179. # 或者相反想让数据更安全你也可以设置为"always"
  180. #
  181. # 如果不确定就用 "everysec".
  182. # appendfsync always
  183. appendfsync everysec
  184. # appendfsync no
  185. # AOF策略设置为always或者everysec时,后台处理进程(后台保存或者AOF日志重写)会执行大量的I/O操作
  186. # 在某些Linux配置中会阻止过长的fsync()请求。注意现在没有任何修复,即使fsync在另外一个线程进行处理
  187. #
  188. # 为了减缓这个问题,可以设置下面这个参数no-appendfsync-on-rewrite
  189. #
  190. # This means that while another child is saving the durability of Redis is
  191. # the same as "appendfsync none", that in pratical terms means that it is
  192. # possible to lost up to 30 seconds of log in the worst scenario (with the
  193. # default Linux settings).
  194. #
  195. # If you have latency problems turn this to "yes". Otherwise leave it as
  196. # "no" that is the safest pick from the point of view of durability.
  197. no-appendfsync-on-rewrite no
  198. # Automatic rewrite of the append only file.
  199. # AOF 自动重写
  200. # 当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写
  201. #
  202. # 它是这样工作的:Redis会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定)
  203. #
  204. # 基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动
  205. # 同时需要指定一个最小大小用于AOF重写,这个用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况
  206. # 设置 percentage 为0就关闭这个特性
  207. auto-aof-rewrite-percentage 100
  208. auto-aof-rewrite-min-size 64mb
  209. ################################## SLOW LOG ###################################
  210. # Redis Slow Log 记录超过特定执行时间的命令。执行时间不包括I/O计算比如连接客户端,返回结果等,只是命令执行时间
  211. #
  212. # 可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微妙),
  213. # 另一个是slow log 的长度。当一个新命令被记录的时候最早的命令将被从队列中移除
  214. # 下面的时间以微妙微单位,因此1000000代表一分钟。
  215. # 注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录
  216. slowlog-log-slower-than 10000
  217. # 对日志长度没有限制,只是要注意它会消耗内存
  218. # 可以通过 SLOWLOG RESET 回收被慢日志消耗的内存
  219. slowlog-max-len 1024
  220. ################################ VM ###############################
  221. ### WARNING! Virtual Memory is deprecated in Redis 2.4
  222. ### The use of Virtual Memory is strongly discouraged.
  223. # Virtual Memory allows Redis to work with datasets bigger than the actual
  224. # amount of RAM needed to hold the whole dataset in memory.
  225. # In order to do so very used keys are taken in memory while the other keys
  226. # are swapped into a swap file, similarly to what operating systems do
  227. # with memory pages.
  228. #
  229. # To enable VM just set 'vm-enabled' to yes, and set the following three
  230. # VM parameters accordingly to your needs.
  231. vm-enabled no
  232. # vm-enabled yes
  233. # This is the path of the Redis swap file. As you can guess, swap files
  234. # can't be shared by different Redis instances, so make sure to use a swap
  235. # file for every redis process you are running. Redis will complain if the
  236. # swap file is already in use.
  237. #
  238. # The best kind of storage for the Redis swap file (that's accessed at random)
  239. # is a Solid State Disk (SSD).
  240. #
  241. # *** WARNING *** if you are using a shared hosting the default of putting
  242. # the swap file under /tmp is not secure. Create a dir with access granted
  243. # only to Redis user and configure Redis to create the swap file there.
  244. vm-swap-file /tmp/redis.swap
  245. # vm-max-memory configures the VM to use at max the specified amount of
  246. # RAM. Everything that deos not fit will be swapped on disk *if* possible, that
  247. # is, if there is still enough contiguous space in the swap file.
  248. #
  249. # With vm-max-memory 0 the system will swap everything it can. Not a good
  250. # default, just specify the max amount of RAM you can in bytes, but it's
  251. # better to leave some margin. For instance specify an amount of RAM
  252. # that's more or less between 60 and 80% of your free RAM.
  253. vm-max-memory 0
  254. # Redis swap files is split into pages. An object can be saved using multiple
  255. # contiguous pages, but pages can't be shared between different objects.
  256. # So if your page is too big, small objects swapped out on disk will waste
  257. # a lot of space. If you page is too small, there is less space in the swap
  258. # file (assuming you configured the same number of total swap file pages).
  259. #
  260. # If you use a lot of small objects, use a page size of 64 or 32 bytes.
  261. # If you use a lot of big objects, use a bigger page size.
  262. # If unsure, use the default :)
  263. vm-page-size 32
  264. # Number of total memory pages in the swap file.
  265. # Given that the page table (a bitmap of free/used pages) is taken in memory,
  266. # every 8 pages on disk will consume 1 byte of RAM.
  267. #
  268. # The total swap size is vm-page-size * vm-pages
  269. #
  270. # With the default of 32-bytes memory pages and 134217728 pages Redis will
  271. # use a 4 GB swap file, that will use 16 MB of RAM for the page table.
  272. #
  273. # It's better to use the smallest acceptable value for your application,
  274. # but the default is large in order to work in most conditions.
  275. vm-pages 134217728
  276. # Max number of VM I/O threads running at the same time.
  277. # This threads are used to read/write data from/to swap file, since they
  278. # also encode and decode objects from disk to memory or the reverse, a bigger
  279. # number of threads can help with big objects even if they can't help with
  280. # I/O itself as the physical device may not be able to couple with many
  281. # reads/writes operations at the same time.
  282. #
  283. # The special value of 0 turn off threaded I/O and enables the blocking
  284. # Virtual Memory implementation.
  285. vm-max-threads 4
  286. ############################### ADVANCED CONFIG ###############################
  287. # 当hash中包含超过指定元素个数并且最大的元素没有超过临界时,
  288. # hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值
  289. # Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现,
  290. # 这个Hash的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap,
  291. # 当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。
  292. hash-max-zipmap-entries 512
  293. hash-max-zipmap-value 64
  294. # list数据类型多少节点以下会采用去指针的紧凑存储格式。
  295. # list数据类型节点值大小小于多少字节会采用紧凑存储格式。
  296. list-max-ziplist-entries 512
  297. list-max-ziplist-value 64
  298. # set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。
  299. set-max-intset-entries 512
  300. # zsort数据类型多少节点以下会采用去指针的紧凑存储格式。
  301. # zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。
  302. zset-max-ziplist-entries 128
  303. zset-max-ziplist-value 64
  304. # Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用
  305. #
  306. # 当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。
  307. #
  308. # 如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存
  309. activerehashing yes
  310. ################################## INCLUDES ###################################
  311. # 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使**加粗样式**用同一份配置文件,而同时各个实例又拥有自己的特定配置文件
  312. # include /path/to/local.conf
  313. # include /path/to/other.conf

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/811617
推荐阅读
相关标签
  

闽ICP备14008679号