欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

redis笔记(三)

程序员文章站 2022-04-14 13:43:50
redis配置文件 配置文件对单位大小写不敏感 tcp-backlog 511 高并发环境连接数 tcp-keepalive 单位为秒 0 表示不会进行keepalive检测,,,建议设置为60 redis密码设置 config get requirepass 查看 设置密码 config set ......

 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传入一个空字符串

redis笔记(三)

在该条件下触发持久化,生成dump.rdb文件

stop-writes-on-bgsave-error:

如果配置成no,表示不在意数据不一致或者可以采用其他手段和控制

redis笔记(三)

rdbcompression:

对于存储到磁盘中的快照,可以设置是否进行压缩存储,yes,则redis采用LZF算法进行压缩,不愿消耗CPU来进行压缩,可以关闭

redis笔记(三)

rdbchecksum:

在存储快照后,可以让redis使用CRC64算法进行数据校验,但是会增加10%性能消耗,可以关闭以提升性能

redis笔记(三)

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

redis笔记(三)

no-appendfsync-on-rewrite:重写时是否可以运用Appendfsync  默认no 即可  保证数据安全性

auto-aof-rewrite-percentage:设置重写的基准值

auto-aof-rewrite-min-size:设置重写的基准值

redis笔记(三)

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支持部分支持事物