配置文件(redis.conf)
1.单位不敏感。 1k 与1kb都是可以的。
2.可以include 多个配置文件。 include /path/local.conf
3.general(通用)
daemonize yes :redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。但当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。服务端开发的大部分应用都是采用后台运行的模式
tcp-backlog 511 :
bind 127.0.0.1 :绑定的网卡
timeout 0 : 空闲多久之后断开链接 0代表不关闭
tcp-keepalive 0 : 如果设置为0 ,不会进行检测(每过多久,发送一个ping看你是否活着。 )。建议设置60. 集群
loglevel notice : 日志级别。 等级越高,日志越少。
databases 16: 默认16个库
4. snapshotting快照。
5.安全(主要是做缓存的,而不是做安全的,所以安全级别低)
config get requirepass 获取密码
config set requirepass 123 设置密码123
在访问命令之前,加密码
auth 123
6.limits 限制
maxClient 最大连接用户数
maxMemory最大内存
maxMemory policy : 当内存最大时,你选用的处理策略。lru:最近最少使用,一个月,这个软件使用最少的。 random:随机 ttl:移除TTL值最小的key,最近过期的。
dir :本地数据库的存放目录
Redis的持久化:
RDB(redis database) :
在指定的时间间隔内将内存中的数据集,快照,写入硬盘(以文件形式存在,每次覆盖的都是比上次全的)。恢复时就是将快照写入内存。
fork,与github的fork不同。复制一个与当前进程一样的进程。新的进程数据与原来的一样。
保存的文件是dump.rdb文件。
这个文件的配置,就是在redis.conf中配置。
save 时间(时间内) changes(改变几个key) 就会生成rdb文件。如果想立即生效,命令输入save。
我们shoutdown 关闭的时候也会生成rdb文件。
dbfilename rdb文件。 如何从新读回内存? 只要启动的时候,如果存在dump.rdb文件就会 载入内存。
stop-writes-on-bgsave-error yes(出错就停止)。 no的话就是说,你不在乎数据不一致或者有其他手段发现和控制。
rdbcompression。对于存在磁盘的快照是否压缩。
命令save或者bgsave都可以立即生成dump.rdb。 save:只管保存,其他不管,全部阻塞。 bgsave:后台异步进行快照操作。
flushall也会生成dump.rdb,但里面是空的。 相当于delete commit
优势:适合大数据恢复。 对数据完整性和一致性 要求不高。
劣势:间隔时间才备份,会导致丢失一些。
一般禁用,只需要不用设置save 或者save空字符串
AOF(append only file):
只记录写操作。 恢复的时候,每条语句执行一次。
在redis.conf中配置
appendonly no 一般默认是关。不使用该功能。
开启aof,那么就会去按aof获取备份,如果损坏,则拒绝连接。
如果aof文件有问题,出现文件破损,可以使用redis-check-aof --fix appendonly.aof 来帮你截取正确的命令。错误的去掉。
配置文件设置:appendfsync: always(每次发生变化就记录到磁盘) everysec:默认,异步操作,每秒记录。如果一秒内宕机,数据丢失。no:不同步
aof是文件追加,越写越多,需要清理。重写机制:如果文件大小超过阈值,会进行压缩。
redis记录上次重写的大小,默认是aof文件的一倍,且文件大于64M,触发。在配置文件都是可配的。(一般高并发日志,都是3G起步)auto-aof-rewrite-percentage
使用哪一个?
同时开启,当Redis重启的时候是先恢复aof,因为通常aof要比RDB更完整。
RDB数据不实时,但是更适合做备份。因为AOF是不断变化的。
高可用,如果不用AOF,仅靠主从复制,实现高可用也是可以的。