常规配置Redis.conf
- Redis默认不是以守护线程启动的,可用通过配置,使用yes启用守护线程启动
daemonize no
- 当Redis使用守护进程运行时,Redis会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile /var/run/redis.pid
- 指定Redis监听端口,默认是6379
port 6379
- 绑定主机地址
bind 127.0.0.1
- 当客户端闲置多长时间后关闭连接,如果指定为0.表示关闭该功功能
timeout 300
- 指定日志记录级别,Redis总共支持级别:debug、verbose、notice、warning,默认是verbose
loglevel verbose
- 日志记录方式,默认为标准输出,若果配置Redis为守护线程方式运行,而这里又配置为日志记录方式为标准输出,则日志会发送到、/dev/null
logfile stdout
- 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件中,可以多个条件配合
save <seconds> <changes>
Redis默认配置文件中提供三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有一个更新。。。。。。。
如果想手动保存 命令(save) - 指定本地数据库存放目录
dir ./
- 设置密码,如果设置了密码,AUTH <password>命令提供密码
requirepass foocared
- 设置同一时间最大的客户端连接数,默认无限制,如果超出设置数,Redis会关闭新的连接冰向客户端返回max number of clients reached 错误
maxclients 128
17 . 指定Redis最大没存限制,Redis在启动时会将数据加载到内存中,达到最大内存后,Redis会首先尝试清除到期或即将到期的key,当此方法处理后,仍然达到内存设置,将无法在进行写操作,但仍然可以进行读取操作。Redis新的VM机制,会将key存放在内存,value存放在Swap区
maxmemory <bytes>
Redis的持久化
RDB(Redis DataBase)
优点
- RDB是一个非常紧凑的文件
- RDB在保存RDB文件时父进程唯一需要做的就是fork出一个进程,接下来的工作全部由子进程来做,父进程不需要做其他IO操作,所以RDB持久化方式可以最大化Redis的性能。
- 与AOF相比,再回复大的数据集的时候,RDB方式会更快一些。
缺点
- 数据丢失风险大
- RDB需要经常fork子进程来保存数据集到硬盘上,当数据集比较大的时候,fork的过程是非常耗时的,可能会导致Redis在一些毫秒级不能响应客户端请求
AOF(Append Only File)
- 修复aof文件
redis-check-aop -fix appendonly.aop
- 开启AOF持久化数据
appendonly = yes
- 持久化文件名称
appendfilename
- appendfsync (持久化策略)
- Always 同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但数据的完整性比较好
- Everysec:出厂默认推荐,异步操作,每秒记录,如果一秒内宕机,有数据丢失
- NO
- NO-appendfsync-on-rewrite:
- 优势
- AOF文件是一个进行追加的日志文件
- Redis可以在AOF文件体积变得过大时,自动的在后台对AOF进行重写
- AOF文件有序的保存了对数据库执行的所有写操作,这些写入操作以Redis协议的格式保存,因此AOF文件的内容非常容易被人读懂,对文件进行分析也很轻松
- 缺点
- 对相同的数据集来说,AOF文件的体积通常要大于RDB文件的体积
- 更加就所有使用的方式fsync策略,AOF的速度可能会慢于RDB
- 官方建议
- RDB持久化方式能在指定的时间间隔能对你的数据进行快照存储
- AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来回复原始的数据,AOF命令以Redis协议追加保存每次写的操作到文件的末尾。
- Redis还能对AOF文件进行后台重写,是的AOF文件的体积不至于过大
- 只做缓存:如果你只希望你的数据在服务器运行的时候存在,你也可以不适用任何持久化方式
- 同时开启俩种持久化方式:
- 这种情况下,当redis重启的时候会优先载入AOF文件来回复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整。
- RDB的数据不实时,同时使用两者时服务器重启时也只会找AOF文件,那要不要只使用AOF呢?建议不要,应为RDB更合适用于备份数据库(AOF在不断变化不好备份),快速重启,而且不会有AOF可能潜在的bug,留着作为一个万一的手段。