本文已参与「新人创作礼」活动,一起开启掘金创作之路。
reids配置
通用配置
-
容量单位大小写不敏感
-
通过inclue可以将多个配置文件读取进来
-
bind绑定ip
-
port指定端口
-
daemonize设置是否以守护进程的方式运行
-
pidfile如果时守护进程方式运行就需要设置pidfile(/var/run/redis_6379.pid),启动时生产,退出时删除
-
日志级别loglevel
# debug (a lot of information, useful for development/testing) # verbose (many rarely useful info, but not a mess like the debug level) # notice (moderately verbose, what you want in production probably) # warning (only very important / critical messages are logged) -
日志文件logfile,默认为空表示不生成日志文件,如果不设置,以守护程序启动,日志文件会输出到/dev/null
-
databases 数据库数量,默认16个
-
always-show-logo yes;是否显示logo
快照
持久化:在规定时间内,执行多少次操作,则会持久化到文件 .rdb .aof
1.save
save 900 1 #如果900秒内如果一个key进行了修改,则进行持久化
save 300 10 #300秒内10个key进行了修改,进行持久化
save 60 10000
#在持久化失败时是否继续运行
stop-writes-on-bgsave-error yes
#是否压缩rdb文件
rdbcompression yes
#持久化时是否检查rdb文件
rdbchecksum yes
#rdb文件名称
dbfilename dump.rdb
#rdb文件目录
dir ./
REPLICATION 主从复制
SECURITY
requirepass psw #设置密码
rename-command #重命名命令名称,在共享环境下重命名一些危险的命令,重命名为''则可以禁用一些命令
CLIENTS限制
maxclients 10000 #现在最多允许10000(默认值)个客户端同时连接
MEMORY MANAGEMENT 内存管理
maxmemory <bytes> #设置一个内存的限定字节数。当达到限制大小,redis会尝试移除keys。
maxmemory-policy noeviction#内存满后的移除策略
# volatile-lru -> 在过期集合中采用lru策略进行移除
# allkeys-lru -> 所有的key集合中采用lru策略移除
# volatile-lfu -> 设有过期时间的key集合中采用lfu策略移除
# allkeys-lfu -> 所有的key集合中采用lfu策略移除
# volatile-random -> 在设有过期时间的key集合中随机移除
# allkeys-random -> 所有key集合中随机移除
# volatile-ttl -> 移除最近过期的key
# noeviction -> 不做任何处理,仅在写操作时返回一个错误信息
maxmemory-samples 5 #移除时并非全量进行lru,会取用部分样本进行算法计算,该配置设置样本数大小。
replica-ignore-maxmemory yes #副本是否忽略内存管理配置(redis 5开始,副本将忽略该配置)
LRU是最近最少使用页面置换算法,淘汰最长时间未被使用的页面;而LFU是最近最不常用页面置换算法,淘汰一定时期内被访问次数最少的页。LRU关键是看页面最后一次被使用到发生调度的时间长短;而LFU关键是看一定时间段内页面被使用的频率
样本数默认值为5会产生足够好的结果。10非常接近真正的LRU,但需要更多的CPU。3更快,但不是很准确。
APPEND ONLY MODE(AOF模式)
appendonly no #默认不开启,默认使用rdb方式持久化,在大部分情况下rdb完全够用。
appendfilename "appendonly.aof"#持久化的文件名字
# appendfsync always #每次修改都会同步,消耗性能
appendfsync everysec # 每秒执行一次同步,可能会丢失这1s的数据
# appendfsync no #关闭同步
Redis持久
redis是内存数据库,所以必须持久化才能保存数据状态。
持久化有两种方式:rdb和AOF;
rdb
rdb保存的文件时dump.rdb,rdb是快照。
rdb持久化触发机制:
- save规则满足;
- 执行flushall命令;
- 退出redis也会产生rdb文件。
AOF
将所有的命令以日志的形式将所有的写操作记录下来,在启动的时候重新执行写操作。
默认时不开启的,需要手动开启。
保存的文件是appendonly.aof。
如果aof文件被意外篡改了,用redis-check-rdb工具进行修复。修复方式就是把错误的日志命令移除!!!!