redis概述与持久化

一、Redis概述

Redis是一个高性能的NOSQL系列的非关系型,Redis是C语言编写的,基于内存(与MySQL基于硬盘不同,所以用作缓存)

所以Redis为什么这么快?

  1. 命令时基于内存
  2. 命令是单线程,没有上下文切换
  3. 基于IO多路复用机制
  4. 全局哈希表

 

 

二、常用五大数据类型

String、Hash、List、Set、ZSet

List:相当于Java的的LinkedList

Set:相当于JavaHashSet

 

 

三、Redis的事务和锁

开启事务(multi)

命令入队(…)

执行事务(exec)

放弃事务(discard)

Redis的事务不具有原子性,如果是编译型异常,则整个事务全部失败,如果是运行时异常,则只有单个命令失败

执行事务的时候,可以用watch锁某个值,如果被修改了则事务失败

Redis事务的特点

 

四、数据一致性

数据一致性包括RDB和AOF

1.RDB

什么是RDB?

在指定时间内,堆Redis保存一次快照,快照的名字叫做dump(默认30s)

RDB的优点:

  • 适合大规模的数据恢复
  • 按照业务定时备份
  • 堆数据完整性和一致性要求不高
  • RDB文件在内存中加载的速度要比AOF快得多

RDB的缺点:

  • 如果没有达到RDB保存文件的条件(比如第29s,redis挂掉),那么就不会保存

2.AOF

AOF是以日志的形式来记录每个写操作 ,将Redis执行过的所有写指令记录下来。

默认情况下,Redis没有开启AOF,开启AOF需要设置配置:appendonly yes

AOF持久化工作流程图

其中三种写回策略分别是

  1. Always
  2. Evecysec

    每秒写回,每个命令执行完,把日志写到AOF文件缓冲区,每隔一秒把缓冲区的任务写入磁盘

  3. No

 

AOF优点:更好的保护数据,可做紧急修复(把错误指令在日志删除即可)

缺点:AOF文件比RDB文件大,比RDB慢

posted @ 2023-03-18 10:49  冬日寻雾记  阅读(22)  评论(0)    收藏  举报