1179 字 | 3 分钟
Tendis存储版 配置指南
使用方法
./tendisplus ./tendisplus.conf
特殊配置: include other.conf
需要小心不能循环包含
参数配置
参数 | 默认值 | 推荐值 | 说明 |
---|---|---|---|
bind | 127.0.0.1 | ||
port | 8903 | - | |
loglevel | 空 | - | debug/verbose/notice/warning |
logdir | ./ | - | |
storage | rocks | ||
dir | ./db | - | |
dumpdir | ./dump | - | |
rocks.blockcachemb | 4096 | 30%整机内存 | rocksdb整体的缓存大小,单位MB |
requirepass | 空 | - | 启用密码 |
masterauth | 空 | - | 主从同步,从发送给主的密码 |
pidfile | ./tendisplus.pid | - | |
version-increase | |||
generallog | true | - | 全部命令打印日志开关:true/on/1 |
checkkeytypeforsetcmd | false | set命令是否校验key的类型:true/on/1 | |
chunkSize | 0x4000 | ||
kvstorecount | 10 | rocksdb数据库数目 | |
delcntindexmgr | 10000 | - | 每次调度删除过期key个数 |
deljobcntindexmgr | 1 | - | 删除过期key线程数 |
scancntindexmgr | 1000 | - | 每次调度扫描过期key个数 |
scanjobcntindexmgrv | 1 | - | 扫描过期key线程数 |
pausetimeindexmgr | 10 | - | 删除过期key调度时间间隔,单位秒 |
proto-max-bulk-len | 536870912 | - | 网络协议单行最大长度,默认512M |
databases | 16 | - | db个数,select命令使用 |
noexpire | false | - | 不执行主动过期,也不清理过期数据 |
maxbinlogkeepnum | 1000000 | - | binlog最大保存个数 |
minbinlogkeepsec | 0 | - | binlog最少保留时间,单位秒,0表示默认关闭该功能 |
maxclients | 10000 | - | 支持最大客户端数目 |
slowlog | ./slowlog | - | slowlog信息存到disk file的保存路径 |
slowlog-log-slower-than | 100000 | - | slowlog阈值,单位微秒(μs),默认超过100ms就会记录慢查询 |
slowlog-flush-interval | 1000 | - | 将slowlog信息flush到disk file的间隔日志条数 |
slowlog-max-len | 128 | - | slowlog信息在内存中维持的最大条数 |
slowlog-file-enabled | true | - | 若为true,可将slowlog信息写入disk file中,持久化存储,写入到file的记录数量是不受限制的; 若为false,则该功能被禁止 |
netiothreadnum | 0 | - | 网络模块,读写线程数,0表示默认max(4,cpunum/4) |
executorthreadnum | 0 | - | 命令模块,处理线程数,0表示默认max(4,cpunum/2) |
binlogRateLimitMB | 64 | - | 主从全量同步整体限速值,单位MB |
netBatchSize | 10241024 | - | 主从全量同步每个batch大小 |
netBatchTimeoutSec | 10 | - | 主从全量同步每个batch超时时间,单位秒 |
timeoutSecBinlogWaitRsp | 10 | - | 主从增量同步大于10M超时时间,单位秒 |
incrPushThreadnum | 50 | - | 主从同步增量推送线程数 |
fullPushThreadnum | 4 | - | 主从同步全量推送线程数 |
fullReceiveThreadnum | 4 | - | 主从同步全量接受线程数 |
logRecycleThreadnum | 12 | - | 删除binlog线程数 |
truncateBinlogIntervalMs | 1000 | - | 删除binlog调度间隔,单位ms |
truncateBinlogNum | 50000 | - | 删除binlog单次调度最大个数 |
binlogFileSizeMB | 64 | - | binlog文件大小限制 |
binlogFileSecs | 2060 | - | binlog文件切换间隔 |
keysDefaultLimit | 100 | keys命令默认返回key个数 | |
lockWaitTimeOut | 3600 | tendis锁等待时间,例如一个key等待的锁时间超过该值,就会返回超时错误 | |
rocks.blockcache_strict_capacity_limit | false | - | rocksdb是否严格控制内存 |
rocks.disable_wal | false | rocksdb是否禁用wal | |
rocks.flush_log_at_trx_commit | false | rocksdb是否每次事务提交都同步写redo log,若配置为1,数据可靠性更强 | |
rocks.wal_dir | “” | rocksdb的redo日志存储目录 | |
rocks.compress_type | snappy | rocksdb的压缩算法,目前支持snappy,lz4,none |
集群配置
参数 | 默认值 | 推荐值 | 动态修改 | 说明 |
---|---|---|---|---|
cluster-enabled | 否 | - | X | 以集群模式启动Tendis存储版 |
cluster-require-full-coverage | 是 | 是 | ✓ | 槽是否全覆盖 |
cluster-slave-no-failover | 否 | 否 | ✓ | 不支持slave failover |
cluster-node-timeout | 15000 | ✓ | 节点互连超时的阀值,ms为单位 | |
cluster-migration-barrier | 1 | ✓ | 主设备将保持连接的最小从设备数量 | |
cluster-slave-validity-factor | 10 | ✓ | slave 选举无效因子 | |
cluster-migration-distance | 10000 | ✓ | migarte过程中发送方追加binlog的最小距离(搬迁时候如果写入量很大,这个值可以设置高一点) | |
cluster-migration-distance | 10 | ✓ | migarte过程中发送方追加binlog的迭代次数 | |
cluster-migration-slots-num-per-task | 10 | ✓ | 搬迁一个子任务处理的最大slot个数 | |
cluster-migration-rate-limit | 32 | ✓ | 搬迁过程中 流量限流值 MB为单位 | |
binlog-send-batch | 256 | ✓ | 一次发送binlog的数据包个数 | |
binlog-send-bytes | 16 1024 1024 | ✓ | 一次发送的binglog 单个数据包字节数 |
命令换名: rename-command command othername
可以把command换一个名字,从而实现禁用的功能。比如: rename-command flushdb flushdb_rename
命令映射: mapping-command command othercommand
可以把一个command映射到另外一个命令,从而实现替换实际操作的功能。比如: mapping-command dbsize emptyint mapping-command keys emptymultibulk 这里提供了几个空命令,用于直接返回空值: emptyint 返回0 emptyok 返回+ok emptybulk 返回空字符串 emptymultibulk 返回多行的空字符串
注意事项
master需要注意参数:maxbinlogkeepnum 和 minbinlogkeepsec。slave在拉取全量的起始时刻之后的binlog需要保留而不被删掉,可以调大这两个参数。其中minbinlogkeepsec默认是0,表示关闭,它优先级比maxbinlogkeepnum更高。