redis笔记(三)
redis配置文件
配置文件对单位大小写不敏感
tcp-backlog 511 高并发环境连接数
tcp-keepalive 单位为秒 0 表示不会进行keepalive检测,,,建议设置为60
redis密码设置
config get requirepass 查看
设置密码 config set requirepass "12345"
输入密码方式 auth 12345
limits 限制最大值
maxmemory <bytes>
maxclients
maxmemory-poilcy
maxmemory-samples
redis持久化:
rdb (redis database) aof (append only file )
rdb:在指定的时间间隔内将数据集快照写入磁盘中,也就是快照,恢复时将快照文件直接读到内存
用一个新的fork进程来持久化,主进程不进行io操作 dump.rdb
如果想禁用RDB持久化的策略,只要不设置任何save指令或者save传入一个空字符串
在该条件下触发持久化,生成dump.rdb文件
stop-writes-on-bgsave-error:
如果配置成no,表示不在意数据不一致或者可以采用其他手段和控制
rdbcompression:
对于存储到磁盘中的快照,可以设置是否进行压缩存储,yes,则redis采用LZF算法进行压缩,不愿消耗CPU来进行压缩,可以关闭
rdbchecksum:
在存储快照后,可以让redis使用CRC64算法进行数据校验,但是会增加10%性能消耗,可以关闭以提升性能
aof
以日志的形式来记录每个操作,将redis执行过的所有指令记录下来(读操作不记录)
只允许追加文件,不允许改写文件,redis启动后悔读取文件重现建立数据,也就是说,redis
重启就根据日志文件的内容将指令从前到后执行一次已完成数据的回复
在同一目录下存在dump.rdb appendonly.aof 时,默认去找 aof ,若aof文件出错,则redis服务无法启动
此时采用自动修复方案:redis-check-aof --fix appendonly.aof 可以自动删除文件中不符合语法的内容 dump文件也可以修复
appendonly no (默认为no使用则需要改成yes)
appendfsync:
always同步持久化,每次数据变更都会立即被记录到磁盘,性能差但数据完整性好
everysec 默认设置 异步操作,每秒记录 一秒内宕机 数据丢失
no
no-appendfsync-on-rewrite:重写时是否可以运用Appendfsync 默认no 即可 保证数据安全性
auto-aof-rewrite-percentage:设置重写的基准值
auto-aof-rewrite-min-size:设置重写的基准值
rewrite:
AOF采用文件追加方式,文件会越来越大为避免出现此种情况,新增重写机制,当AOF文件大小超过设定阈值时,redis会启动AOF文件的内容压缩
重写触发机制:redis会记录上次重写时AOF文件大小,默认配置为当AOF文件大小是上次rewrite后的大小的一倍且文件大于64M时触发
劣势:对于相同的数据集 aof文件远大于 rdb文件 恢复速度慢 aof运行效率要慢于rdb,每秒同步策略效率较好,不同步效率和rdb相同
redis事物:
可以一次执行多个命令,本质是一组命令的集合。一个事物中所有的命令都会被序列化,按顺序地串行化执行而不会被其他命令插入 ,不加塞
discard 取消事物内所有的命令
exec 执行所有事物块内的命令
multi 标记一个事物快的开始
unwatch 取消watch命令对所有key的监视
watch key [key ...] 监视一个或者多个key,如果事务执行之前key被其他命令改动,那么事物将被打断
注意:在整个过程中,如果有错误出现,(命令语法错误,直接报错)整个事物不能正常执行
但是如果已经加入的QUEUED了,那么只是错误的无法正常执行,其他的可以正常执行
redis支持部分支持事物