Redis之——配置详解

  1. /********************************* GENERAL *********************************/  
  2. redis客户端创建文件夹命令
  3. #mkdir data
  4. // 是否作为守护进程运行  
  5. daemonize yes   
  6.   
  7. // 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid  (window版本哄没有此文件,可以忽略)
  8. pidfile /var/run/redis.pid   
  9.   
  10. // Redis默认监听端口  
  11. port 6379   
  12.   
  13. tcp-backlog 511   
  14.   
  15. // 客户端闲置多少秒后,断开连接  
  16. timeout 0   
  17.   
  18. tcp-keepalive 0   
  19.   
  20. // 日志记录等级,有4个可选值,debug,verbose,notice,warning  
  21. loglevel notice   
  22.   
  23. // 指定日志输出的文件名,可设为/dev/null屏蔽日志  
  24. logfile ""   
  25.   
  26. // 可用数据库数,默认值为16,默认数据库为0  
  27. databases 16   
  28.   
  29. /****************************** SNAPSHOTTING 快照 *********************************/  
  30. // 保存数据到disk的策略  (RDB持久化策略)
  31. // 900 秒有 1 条改变保存到disk  
  32. save 900 1  
  33. // 300 秒有 10 条改变保存到disk  
  34. save 300 10  
  35. // 60 秒有 10000 条改变保存到disk  
  36. save 60 10000   
  37.   
  38. stop-writes-on-bgsave-error yes   
  39.   
  40. // 当dump .rdb数据库的时候是否压缩数据对象  
  41. rdbcompression yes   (默认是开启压缩RDB文件,增加了系统开销)
  42.   
  43. rdbchecksum yes   
  44.   
  45. // 本地数据库文件名,默认值为dump.rdb  (一般配置dump-[端口号].dump)
  46. dbfilename dump.rdb   
  47.   
  48. // 本地数据库存放路径,默认值为 ./  
  49. dir ./   
  50.   
  51. /*************************** REPLICATION Redis的复制配置 *********************************/   
  52.   
  53. // 当本机为从服务时,设置主服务的IP及端口  
  54. // slaveof <masterip> <masterport>   (从服务器设置主服务器地址与端口号)
  55.   
  56. // 当本机为从服务时,设置主服务的连接密码  (设置从服务器连接主服务器的密码,启动从服务器时验证)
  57. // masterauth <master-password> (从服务器启动时需要输入密码才能启动)  
  58.   
  59. // 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式  
  60. // 1) 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求  
  61. // 2) 如果slave-serve-stale-data是指为no,出去INFO和SLAVOF命令之外的任何请求都会返回一个错误"SYNC with master in progress"  
  62. slave-serve-stale-data yes   
  63.   
  64. slave-read-only yes   (开启读写分离,默认配置yes)
  65.   
  66. repl-diskless-sync no   
  67.   
  68. repl-diskless-sync-delay 5   
  69.   
  70. // 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒  
  71. repl-ping-slave-period 10   
  72.   
  73. // repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒  
  74. // 一定要确保repl-timeout大于repl-ping-slave-period  
  75. repl-timeout 60   
  76.   
  77. // 采用无延迟同步 默认no  
  78. repl-disable-tcp-nodelay yes   
  79.   
  80. slave-priority 100   
  81.   
  82. /********************************* SECURITY 安全 *********************************/   
  83.   
  84. // 设置客户端连接后进行任何其他指定前需要使用的密码。  
  85. // 警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,  
  86. 这意味着你需要指定非常非常强大的密码来防止暴力破解  
  87. // requirepass foobared   
  88.   
  89. // 命令重命名.  
  90. // 在一个共享环境下可以重命名相对危险的命令。比如把CONFIG重名为一个不容易猜测的字符。  
  91. // 举例:  
  92. // rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52  
  93. // 如果想删除一个命令,直接把它重命名为一个空字符""即可,如下:  
  94. // rename-command CONFIG ""   
  95.   
  96. /********************************* LIMITS 约束 *********************************/  
  97. // 最大可用内存 maxmemory <bytes> 536870912,即512M  
  98. maxmemory 536870912   
  99.   
  100. // 当内存达到最大值的时候Redis会选择删除哪些数据?有五种方式可供选择  
  101. maxmemory-policy volatile-lru
  102. // volatile-lru -> 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )  (最近最少使用)
  103. // allkeys-lru -> 利用LRU算法移除任何key  
  104. // volatile-random -> 移除设置过过期时间的随机key  
  105. // allkeys->random -> remove a random key, any key  
  106. // volatile-ttl -> 移除即将过期的key(minor TTL)  
  107. // noeviction -> 不移除任何可以,只是返回一个写错误  
  108. maxmemory-policy allkeys-lru   
  109.   
  110. // LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。  
  111. // Redis默认的灰选择3个样本进行检测,你可以通过maxmemory-samples进行设置  
  112. maxmemory-samples 3   
  113.   
  114. /********************************* APPEND ONLY MODE *********************************/   
  115.   
  116. // 启用aof持久化方式  
  117. // 因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no  
  118. appendonly yes   
  119.   
  120. // 更新日志文件名,默认值为appendonly.aof  
  121. appendfilename "appendonly.aof"   
  122.   
  123. // 收到写命令立即写入磁盘,最慢,保证完全的持久化  
  124. appendfsync always  
  125. // 每秒写入一次  
  126. appendfsync everysec  
  127. // 完全依赖OS,性能最好,持久化没保证  
  128. appendfsync no   
  129.   
  130. // 部署在同一机器的redis实例,把auto-aof-rewrite打开,因为cluster环境下内存占用基本一致  
  131. #关闭在aof rewrite的时候对新的写操作进行fsync  
  132. no-appendfsync-on-rewrite yes   (官方解释:#如果您有延迟问题,请将其转为“是”。 否则,将其保留为“不”,从耐久性的角度来看,这是最安全的选择。)
  133.   
  134. // Automatic rewrite of the append only file.  
  135. // AOF 自动重写  
  136. // 当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写  
  137. //  
  138. // 它是这样工作的:Redis会记住上次进行些日志后文件的大小(如果从开机以来还没进行过重写,那日子大小在开机的时候确定)  
  139. //  
  140. // 基础大小会同现在的大小进行比较。如果现在的大小比基础大小大制定的百分比,重写功能将启动  
  141. // 同时需要指定一个最小大小用于AOF重写,这个用于阻止即使文件很小但是增长幅度很大也去重写AOF文件的情况  
  142. // 设置 percentage 为0就关闭这个特性  
  143. (AOF重写条件,第一次重新是按容量,后面就是根据增长率)
  144. auto-aof-rewrite-percentage 100  
  145. auto-aof-rewrite-min-size 64mb   
  146.   
  147. aof-load-truncated yes   
  148.   
  149. /********************************* LUA SCRIPTING *********************************/  
  150. lua-time-limit 5000   
  151.   
  152. /********************************* REDIS CLUSTER 集群*********************************/  
  153. // 打开redis集群  
  154. cluster-enabled yes   
  155.   
  156. // cluster配置文件(启动自动生成)  
  157. cluster-config-file nodes-6379.conf   
  158.   
  159. // 节点互连超时的阀值  
  160. cluster-node-timeout 15000   
  161.   
  162. cluster-slave-validity-factor 10   
  163.   
  164. cluster-migration-barrier 1   
  165.   
  166. // 集群兼容部分失败  
  167. cluster-require-full-coverage yes   
  168.   
  169. /********************************* SLOW LOG *********************************/  
  170.   
  171. // Redis Slow Log 记录超过特定执行时间的命令。执行时间不包括I/O计算比如连接客户端,返回结果等,只是命令执行时间  
  172. //  
  173. // 可以通过两个参数设置slow log:一个是告诉Redis执行超过多少时间被记录的参数slowlog-log-slower-than(微妙),  
  174. // 另一个是slow log 的长度。当一个新命令被记录的时候最早的命令将被从队列中移除   
  175.   
  176. // 下面的时间以微妙微单位,因此1000000代表一分钟。  
  177. // 注意制定一个负数将关闭慢日志,而设置为0将强制每个命令都会记录  
  178. slowlog-log-slower-than 10000   
  179.   
  180. // 对日志长度没有限制,只是要注意它会消耗内存  
  181. // 可以通过 SLOWLOG RESET 回收被慢日志消耗的内存  
  182. slowlog-max-len 128   
  183.   
  184. /********************************* LATENCY MONITOR *********************************/   
  185.   
  186. latency-monitor-threshold 0   
  187.   
  188. /********************************* EVENT NOTIFICATION *********************************/  
  189.   
  190. notify-keyspace-events ""   
  191.   
  192. /********************************* ADVANCED CONFIG *********************************/   
  193.   
  194. // 当hash中包含超过指定元素个数并且最大的元素没有超过临界时,  
  195. // hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值  
  196. // Redis Hash对应Value内部实际就是一个HashMap,实际这里会有2种不同实现,  
  197. // 这个Hash的成员比较少时Redis为了节省内存会采用类似一维数组的方式来紧凑存储,  
  198. 而不会采用真正的HashMap结构,对应的value redisObject的encoding为zipmap,   
  199.   
  200. // 当成员数量增大时会自动转成真正的HashMap,此时encoding为ht。   
  201.   
  202. hash-max-ziplist-entries 512  
  203. hash-max-ziplist-value 64   
  204.   
  205. // list数据类型多少节点以下会采用去指针的紧凑存储格式。  
  206. // list数据类型节点值大小小于多少字节会采用紧凑存储格式。  
  207. list-max-ziplist-entries 512  
  208. list-max-ziplist-value 64   
  209.   
  210. // set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储。  
  211. set-max-intset-entries 512   
  212.   
  213. // zsort数据类型多少节点以下会采用去指针的紧凑存储格式。  
  214. // zsort数据类型节点值大小小于多少字节会采用紧凑存储格式。  
  215. zset-max-ziplist-entries 128  
  216. zset-max-ziplist-value 64   
  217.   
  218. hll-sparse-max-bytes 3000   
  219.   
  220. // Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用  
  221. //  
  222. // 当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。  
  223. //  
  224. // 如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存  
  225. activerehashing yes   
  226.   
  227. client-output-buffer-limit normal 0 0 0  
  228. client-output-buffer-limit slave 256mb 64mb 60  
  229. client-output-buffer-limit pubsub 32mb 8mb 60   
  230.   
  231. hz 10   
  232.   
  233. aof-rewrite-incremental-fsync yes   
  234.   
  235. /********************************* VM *********************************/  
  236.   
  237. // 是否使用虚拟内存,默认值为no  
  238. vm-enabled yes  
  239.   
  240. // 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享  
  241. vm-swap-file /tmp/redis.swap  
  242.   
  243. // 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的  
  244. (Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。  
  245. vm-max-memory 0  
  246.   
  247. // 虚拟内存文件以块存储,每块32bytes  
  248. vm-page-size 32  
  249.   
  250. // 虚拟内在文件的最大数  
  251. vm-pages 134217728  
  252.   
  253. // 可以设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的.  
  254. 可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.  
  255. vm-max-threads 4  
  256.   
  257. /********************************* INCLUDES *********************************/  
  258. // 包含通用配置  
  259. include /etc/redis/redis-common.conf   
  260.   
  261. /********************************* GENERAL *********************************/  
  262. // 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid  
  263. pidfile /var/run/redis_6379.pid   
  264.   
  265. // Redis默认监听端口  
  266. port 6379   
  267.   
  268. // 指定日志输出的文件名,可设为/dev/null屏蔽日志  
  269. logfile /var/log/redis_6379.log   
  270.   
  271. /********************************* SNAPSHOTTING 快照 *********************************/   
  272.   
  273. // 本地数据库文件名,默认值为dump.rdb  
  274. dbfilename dump6379.rdb   
  275.   
  276. // 本地数据库存放路径,默认值为 ./  
  277. dir /var/redis/6379   
  278.   
  279. /********************************* REPLICATION Redis的复制配置 *********************************/   
  280.   
  281. // 当本机为从服务时,设置主服务的IP及端口  
  282. // slaveof <masterip> <masterport>   
  283.   
  284. // 当本机为从服务时,设置主服务的连接密码  
  285. // masterauth <master-password>   
  286.   
  287. /********************************* APPEND ONLY MODE *********************************/   
  288.   
  289. // 更新日志文件名,默认值为appendonly.aof  
  290. appendfilename "appendonly6379.aof"   
  291.   
  292. /********************************* REDIS CLUSTER 集群 *********************************/  
  293.   
  294. // cluster配置文件(启动自动生成)  
  295. cluster-config-file nodes-6379.conf  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值