天气:晴
一、Redis配置文件介绍
!!.修改配置之前一定要拷贝备份先
1.1k = 1000bytes,1kb = 1024bytes
2.Tcp-keepalive 0 值为0不会进行keepalive检测,建议设置为60
3.**日志级别:debug,verbose,notice,warning;loglevel notice
4.SECURITY安全:默认linux系统已经是安全架构下了无需密码
config get requirepass;config set requireoass
设置完后需要:auth 密码才能连接上
5.limits限制
二、Redis持久化
1.RDB:快照写入磁盘,也就是Snapshot快照,优点是高效,缺点可能是最后一次持久化数据可能丢失,fork的时候内存中数据被克隆了一份,大致二倍的内存需求需要考虑
1.FLASHALL会生成一个快照,可以通过恢复上一个快照来恢复数据
2.可以通过save主动备份,只管保存,全部阻塞;
bgsave,快照的时候还会响应客户端请求;
3.默认备份间隔为配置文件的触发条件
4.dump文件也可以通过check-dump进行修复
将快照放到redis安装目录可以在启动的时候读取恢复
2.AOF:Append Only File,以日志的形式记录所有的写操作,只追加不改写,redis启动之初会读取文件重新构建数据完成恢复数据的工作。优势是同步策略较好,容易分析,不同步与rdb相同,并且效率要慢于rdb,文件也远大于rdb文件
1.aof文件异常,可以通过修复选项,直接删除无法识别的记录:Redis-check-aof --fix
2.aof文件跟rdb是可以同时共存的
3.根据设定的记录等级进行记录,默认是每秒记录
4.超过设定大小会进行压缩
同时开启的话会只找aof读取,但是aof出错会读取rdb,最好都开启,rdb作为一个保障
三、Redis事务
1.示例:
MULTI >OK(开启事务)
set k1 v1 >QUEUED(加入队列)
set k2 v2 >QUEUED
get k2 >QUEUED
EXEC >OK(一步一步执行事务内容)
>OK
>"v2"
**DISCARD:**放弃事务
加入队列的时候直接报错:全体执行放弃
正常加入队列,执行报错:正常的可以执行
所以Redis是部分支持事务
2.watch监控
乐观锁:用watch监控一个数据,改完后判定中间是否被更改过,如果没有就操作成功
悲观锁:认为别人都会跟自己冲突,每次操作都上锁
拓展:
行锁:对操作行加锁,其他人操作其他行可以同时操作
表锁:对整个表加锁,只允许一个人操作整个表
四、消息订阅发布
进程间的一种通信模式,发送者(pub)发送,订阅者(sub)接收
但是一般不会用Redis做消息中间件