> 数据库 > Redis >

Redis配置文件redis.conf 详解(2)



4.安全配置
密码本机,如果别人要求链接需要其验证

requirepass password



命令重命名,如果更改命令可能在从服务器上出现问题

例如:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 //将config命令命名成b840fc02d524045429941cc15f59e41cb7be6c52

rename-command CONFIG "" //默认是空的



5.极限
客户端链接的最大数量

maxclients 10000



最大内存的使用 如果是主从的话,此值应该设置更低

maxmemory <bytes>



redias达到maxmemory时,如何删除k&y

volatile-lru -> 用lru算法删除过期的键值

allkeys-lru -> 用lru算法删除所有键值

volatile-random -> 随机删除过期的键值

allkeys-random -> 随机删除任何键值

volatile-ttl -> 删除最近要到期的键值(监控TTL)

noeviction -> 不会写操作,返回一个错误

At the date of writing this commands are: set setnx setex append incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby getset mset msetnx exec sort

默认值例子如下:

maxmemory-policy volatile-lru




LRU和最小的TTL算法是不准确,在几个中挑几个来检查近期用的最少的键值删除,为了节约内存可以设置小点。

maxmemory-samples 3




6.append only

启用AOF和RDB持久性,如果又一个或者多个写入点时,在写入点和写入点之间的时间里所有add的键值回丢失,如果启用此特性,redis会将add的值先写入到附加文件中,此参数默认就是启用这个特性。

appendonly no



OAF文件的文件名

appendfilename appendonly.aof





append only文件名是由 appendfilename appendonly.aof项来定义的,redias将数据立刻些如到AOF文件中时,有三种方式:

no: 让OS来刷新数据 快

always:每次写入后调用函数FSYNC进行写入 最安全的

everysec: 每一秒进行调用FSYNC进行写入

默认值:appendfsync everysec




如果磁盘性能问题比较慢,将其设置为yes,磁盘I/O比较宽裕则设置为no数据比较安全。

no-appendfsync-on-rewrite no




OAF文件的写规则

如下:如果达到64M的百分之百就停止写入

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb




7.LUA SCRIPTING
执行一个LUA脚本时的最大时间,防止死循环等等,设置为0是没有限制,单位为秒

lua-time-limit 5000




8.redias的慢查询记录
如果大于如下值的执行命令进行记录,默认是10000,单位是微妙(1000000微秒 == 1秒),设置为一个负数时,警用此记录,设置为0时,记录任何执行命令

slowlog-log-slower-than 10000




此值的大小会影响内存的大小,回收内存可以用SLOWLOGRESET

slowlog-max-len 128




9.高级配置
Hash编码使用高速内存数据结构的条目阈值

如果redisObject的type 成员值是 REDIS_LIST 类型的,则当该list 的 elem数小于配置值: hash-max-ziplist-entries 或者elem_value字符串的长度小于 hash-max-ziplist-value, 则可以编码成 REDIS_ENCODING_ZIPLIST 类型存储,以节约内存. 否则采用 Dict 来存储.


hash-max-ziplist-entries 512
hash-max-ziplist-value 64







相同哈希值的列表可以用特殊的表示方式存储,以节约空间,阈值设置如下

如 type 是 REDIS_LIST 类型的,如果其 entry 小于配置值: list-max-ziplist-entries 或 value字符串的长度小于 list-max-ziplist-value,则可以编码成 REDIS_ENCODING_ZIPLIST 类型存储,以节约内存; 否则采用 REDIS_ENCODING_LINKEDLIST 来存储


list-max-ziplist-entries 512
list-max-ziplist-value 64




# Sets have a special encoding in just one case: when a set is composed
# of just strings that happens to be integers in radix 10 in the range
# of 64 bit signed integers.
# The following configuration setting sets the limit in the size of the
# set in order to use this special memory saving encoding.

如 type 是 REDIS_SET 类型的,如果其值可以表示成数字类型且 entry 小于配置值set-max-intset-entries, 则可以编码成 REDIS_ENCODING_INTSET 类型存储,以节约内存; 否则采用 Dict类型来存储
set-max-intset-entries 512

相同的hash列表中,排序列表的元素和长度都不能高于如下值

zset-max-ziplist-entries 128
zset-max-ziplist-value 64




重建hash表的时候如果内存不足 如果此值设置为no则延时,如果为yes则尽快释放内存。

activerehashing yes




客户端buffer限制,如果达到硬限制则立刻断开

三种客户端

# normal -> 正常客户端
# slave -> 从客户端或者监控客户端
# pubsub -> 订阅或者发布客户端

客户端限制的语法如下

client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>

默认如下

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60 //slave客户端 buffer硬限制为256M,软限制为64MB/60秒 就断开连接
client-output-buffer-limit pubsub 32mb 8mb 60





一个任务可以使用的cpu数目

hz 10




10.配置文件include
例子:

# include /path/to/local.conf
# include /path/to/other.conf




(责任编辑:IT)