2021-01-27

转自:https://www.iteye.com/blog/shift-alt-ctrl-1882850

## 在redis中,合法的"尺寸单位",无大小写区分.
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes


##将redis是否以后台进程的方式运行,默认为"no"
daemonize no
##如果"daemonize yes",那么将会把进程id信息写入文件中.请注意:启动redis进程的用户需要具有写入此目录的权限.
##pidfile ~/redis.pid
##指令操作:./redis.server --daemonize yes --pidfile ~/redis.pid
##
pidfile /var/run/redis.pid

##指定server需要侦听的客户端连接端口,client与server在此端口进行TCP通信.
port 6379

##如果你的物理服务器有多个网络接口,请你为将server socket绑定在指定IP上.
# bind 127.0.0.1

# 指定socket连接空闲时间().如果connection空闲超时,将会关闭连接(TCP socket选项)

##如果为0,表示永不超时.
timeout 0

##指定TCP连接是否为长连接,"侦探"信号有server端维护,长连接将会额外的增加server端的开支(TCP socket选项)
##默认为0.表示禁用,0值表示开启"长连接";"侦探"信号的发送间隔将有linux系统决定

##在多次"侦探",如果对等端(客户端socket)仍不回复,将会关闭连接,否则连接将会被保持开启.
##client端socket也可以通过配置keepalive选项,开启"长连接".(单位:秒)
tcp-keepalive 0


##server日志级别,合法值:debug,verbose,notice,warning 默认为notice
##debug适合开发环境,客户端操作信息都会输出日志
##verbose输出一些相对有用的信息,目前效果不明
##notice适合生产环境
##warning异常信息
loglevel notice

##指定redis日志文件目录,默认为stdout
##logfile ~/redislog.log
logfile stdout

##设定redis所允许的最大"db簇"的个数,默认为16个簇.
##客户端可以通过"select"指令指定需要使用的"db簇"索引号,默认为0.
##redis的顶层数据结构中,所有K-V都潜在的包括了"db簇"索引号,任何一个key都将隶属于一个"db".
##任何对数据的检索,只会覆盖指定的"db";例如数据被插入到"db 10",那么在"db 1"中去get,将会返回null.
##对数据归类到不同的db簇中,可以帮助我们实现一些特定的需求,比如根据不同客户端连接,来指定不同的db索引号.
databases 16

##snapshot配置,save <seconds> <changes>,用来描述"在多少秒期间至少多少个变更操作"触发snapshot
##snapshot最终将生成新的dump.rdb文件
##save ""用来禁用snapshot功能
##如下表示12小时内至少一个key变更,触发snapshot
save 43200 1

##如果snapshot过程中出现错误,即数据持久化失败,是否终止所有的客户端write请求.
##这个选项很让人为难,"yes"表示终止,一旦snapshot故障,那么此server为只读服务;

##如果为"no",那么此次snapshot将失败,但下一次snapshot不会受到影响,不过如果出现故障,数据只能恢复到"最近一个成功点".
stop-writes-on-bgsave-error yes

##是否启用rdb文件压缩手段,默认为yes.

##压缩可能需要额外的cpu开支,不过这能够有效的减小rdb文件的大小,有利于存储/备份/传输/数据恢复.
rdbcompression yes

##是否对rdb文件使用CRC64校验和,默认为"yes",那么每个rdb文件内容的末尾都会追加CRC校验和.
##对于其他第三方校验工具,可以很方便的检测文件的完整性
rdbchecksum yes

##指定rdb文件的名称
dbfilename dump.rdb

##指定rdb/AOF文件的目录位置
dir ./

# 将当前server做为slave,并为其指定master信息.
# slaveof <masterip> <masterport>

 

##当前server的授权密码

##任何客户端或者slave与此server交互前,需要提交密码,其他server的masterauth配置和此参数值保持一致
##密码应该足够复杂(64字节)
# requirepass <foobared>


## 以认证的方式连接到master.如果master中使用了"密码保护",slave必须交付正确的授权密码,才能连接成功
## "requirepas"配置项指定了当前server的密码.

## 此配置项中<master-password>值需要和master机器的"requirepas"保持一致。此参数配置在slave端。
# masterauth <master-password>

##如果当前server是slave,那么当slave与master失去通讯时,是否继续为客户端提供服务,"yes"表示继续,"no"表示终止.
##"yes"情况下,slave继续向客户端提供只读服务,有可能此时的数据已经过期.
##"no"情况下,任何向此server发送的数据请求服务(包括客户端和此server的slave)都将被告知"error"
slave-serve-stale-data yes

##slave是否为"只读",强烈建议为"yes"
slave-read-only yes

##slave向指定的master发送ping消息的时间间隔(),默认为10
# repl-ping-slave-period 10

##slave与master通讯中,最大空闲时间,默认60.超时将导致连接关闭.
# repl-timeout 60

##slave与master的连接,是否禁用TCP nodelay选项.
##"yes"表示禁用,那么socket通讯中数据将会以packet方式发送(packet大小受到socket buffer限制),
##       可以提高socket通讯的效率(tcp交互次数),但是小数据将会被buffer,不会被立即发送,对于接受者可能存在延迟.
##"no"表示开启tcp nodelay选项,任何数据都会被立即发送,及时性较好,但是效率较低
##建议为"no"
repl-disable-tcp-nodelay no

##适用Sentinel模块(unstable,M-S集群管理和监控),需要额外的配置文件支持
##slave的权重值,默认100.当master失效后,Sentinel将会从slave列表中找到权重值最低(>0)的slave,并提升为master
##如果权重值为0,表示此slave为"观察者",不参与master选举
slave-priority 100

##重命名指令,对于一些与"server"控制有关的指令,可能不希望远程客户端(非管理员用户)链接随意使用,
##那么就可以把这些指令重命名为"难以阅读"的其他字符串.
##例如"slaveof"   "CONFIG"   "BGREWRITEAOF"   "BGREWRITE"   "FLUSHALL"等指令需要被限制访问

##配置项格式: rename-command <command> <newCommand>
# rename-command CONFIG 3ed984507a5dcd722aeade310065ce5d    (方式:MD5('CONFIG^!'))

##所允许的客户端连接数,默认为10000.
##此值不可能被设置成过大,因为每个socket连接都会以"文件描述符"的方式被系统打开,它受到系统"文件打开个数"的限制
##如果超过此值,server将会拒绝连接.
# maxclients 10000

##redis-cache所能使用的最大内存(bytes),默认为0,表示"无限制",最终由OS物理内存大小决定(如果物理内存不足,有可能会使用swap)
##如果此值设置过小(比如32字节),将直接导致server无法使用.
##此值尽量不要超过机器的物理内存尺寸,从性能和实施的角度考虑,可以为物理内存3/4.
##此配置需要和"maxmemory-policy"配合使用,当redis中内存数据达到maxmemory时,触发"清除策略".
##如果使用"清除策略",仍无法得到足够的内存来存储新的数据,那么write操作的客户端将会收到"error OOM.."信息,此时server只读.
##"内存不足",任何write操作(比如set,lpush等)都会触发"清除策略"的执行.
##在实际环境中,建议redis的所有物理机器的硬件配置保持一致(内存一致),同时确保master/slave中"maxmemory""policy"配置一致
# maxmemory <bytes>

##"内存不足",数据清除策略,默认为"volatile-lru"
## volatile-lru    ->"过期集合"中的数据采取LRU(近期最少使用)算法.如果对key使用"expire"指令指定了过期时间,那么此key将会被添加到"过期集合".

##每个Redis对象,都保留一个“最后访问时间”的属性,可以用来判断此对象空闲的时间,那么LRU算法就可以根据此属性来进行判断。
## 将已经过期/LRU的数据优先移除.如果"过期集合"中全部移除仍不能满足内存需求,将OOM.
## allkeys-lru ->对所有的数据,采用LRU算法
## volatile-random ->"过期集合"中的数据采取"随即选取"算法,并移除选中的K-V,直到"内存足够"为止.
## 如果如果"过期集合"中全部移除全部移除仍不能满足,将OOM
## allkeys-random ->对所有的数据,采取"随即选取"算法,并移除选中的K-V,直到"内存足够"为止.
## volatile-ttl ->"过期集合"中的数据采取TTL算法(最小存活时间),移除即将过期的数据.
## noeviction ->不做任何干扰操作,直接返回OOM异常.
###
##如果数据的过期不会对"应用系统"带来异常,且系统中write操作比较密集,建议采取"allkeys-lru"
# maxmemory-policy volatile-lru


##是否开启aof功能,"yes"表示开启,在开启情况下,aof文件同步功能才生效,默认为"no"
##对master机器,建议使用AOF,对于slave,建议关闭(采用snapshot),
appendonly no


##aof中文件同步机制
## always ->任何一个aof记录都立即进行文件同步(磁盘写入),安全性最高;如果write请求比较密集,将会造成较高的磁盘IO开支和响应延迟
## everysec ->每秒同步一次,性能和安全性都较高的策略,也是默认值
## no ->不直接同步,让文件同步交给OS控制,OS将会根据文件流通道中buffer情况/空闲情况进行择机写入磁盘.安全性和效率与OS设定有关.
appendfsync everysec

##在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁盘IO开支和请求阻塞时间.
##默认为no,表示"不暂缓",新的aof记录仍然会被立即同步
##
no-appendfsync-on-rewrite no

##aof rewrite触发时机,最小文件尺寸
auto-aof-rewrite-min-size 64mb


##aof每次rewrite之后,都会记住当前aof文件的大小,当文件增长到一定比例后,继续进行aof rewrite
auto-aof-rewrite-percentage 100

##aof rewrite过程中,是否采取增量"文件同步"策略,默认为"yes",而且必须为yes.
##rewrite过程中,每32M数据进行一次文件同步,这样可以减少"aof大文件"写入对磁盘的操作次数.
aof-rewrite-incremental-fsync yes

##lua脚本运行的最大时间
lua-time-limit 5000

##"慢操作日志"记录,单位:微秒(百万分之一秒,1000 * 1000),如果操作时间超过此值,将会把command信息"记录"起来.(内存,非文件)
##其中"操作时间"不包括网络IO开支,只包括请求达到server后进行"内存实施"的时间."0"表示记录全部操作.
slowlog-log-slower-than 10000
##"慢操作日志"保留的最大条数,"记录"将会被队列化,如果超过了此长度,旧记录将会被移除.
##可以通过"SLOWLOG <subcommand> args"查看慢记录的信息(SLOWLOG get 10,SLOWLOG reset)
##通过"SLOWLOG get num"指令可以查看最近num条慢速记录,其中包括"记录"操作的时间/指令/K-V等信息
slowlog-max-len 128

##通过"TYPE key"指令查看key的数据类型
##通过"OBJECT encoding key"查看key的编码类型
##hash类型的数据结构在编码上可以使用ziplist和hashtable

##ziplist的特点就是文件存储(以及内存存储)所需的空间较小,在内容较小时,性能和hashtable几乎一样.因此redis对hash类型默认采取ziplist.

##如果hash中条目的条目个数或者value长度达到阀值,将会被重构为hashtable.
##ziplist中允许存储的最大条目个数,建议为128
hash-max-ziplist-entries 512
##ziplist中允许条目value值最大字节数,建议为1024
hash-max-ziplist-value 64

##对于list类型,将会采取ziplist,linkedlist两种编码类型.
##同hash.
list-max-ziplist-entries 512
list-max-ziplist-value 64


##zset为有序集合,2中编码类型:ziplist,skiplist

##因为"排序"将会消耗额外的性能,当zset中数据较多时,将会被重构为skiplist.
##同hash.
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

##intset中允许保存的最大条目个数,如果达到阀值,intset将会被重构为hashtable
set-max-intset-entries 512


##是否开启顶层数据结构的rehash功能,如果内存允许,请开启.
##rehash能够很大程度上提高K-V存取的效率.
activerehashing yes

##客户端buffer控制

##在客户端与server进行的交互中,每个连接都会与一个buffer关联,此buffer用来队列化亟待被client接受的响应信息.
##如果client不能及时的消费响应信息,那么buffer将会被不断积压而给server带来内存压力.如果buffer中积压的数据达到阀值,将会
##导致连接被关闭,buffer被移除."
##buffer控制类型包括:
## normal -> 普通连接
## slave ->与slave之间的连接
## pubsub ->pub/sub类型连接,此类型的连接,往往会产生此种问题;因为pub端会密集的发布消息,但是sub端可能消费不足.
##指令格式:client-output-buffer-limit <class> <hard> <soft> <seconds>",其中hard表示buffer最大值,一旦达到阀值将立即关闭连接;
##soft表示"容忍值",它和seconds配合,如果buffer值超过soft且持续时间达到了seconds,也将立即关闭连接,如果超过了soft但是在seconds之后
##buffer数据小于了soft,连接将会被保留.
# 其中hard和soft都设置为0,则表示禁用buffer控制.通常hard值大于soft.
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

##Redis server执行后台任务的频率,默认为10,此值越大表示redis对"间歇性task"的执行次数越频繁(次数/)
##"间歇性task"包括"过期集合"检测、关闭"空闲超时"的连接等,此值必须大于0且小于500.(参见redis.h源码)

##此值过小就意味着更多的cpu周期消耗,后台task被轮询的次数更频繁

##此值过大意味着"内存敏感"性较差.
##建议保持默认值
hz 10

##include指令用来载入额外的配置文件模板,也可以在redis server启动时,手动指定需要include的配置文件.
# include /path/to/local.conf
# include /path/to/other.conf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值