redis学习03--Redis的机制

1、Redis的事务

Redis的事务:以次事务,该成功的成功,该失败的失败。

开启事务,执行一系列命令,但是不会立即执行,会被放在一个队列中。

如果执行事务,那么这个队列中的命令全部执行。

如果取消了事务,则队列中的命令全部作废。

 

事务的相关命令:

使用redis-cli连接到服务端后

#开启事务
multi

#执行事务
exec

取消事务
discard

执行事务或者取消事务后,需要重新开启事务进行下一个事务操作。

一般配合watch命令使用。在没有调用multi之前(未开启事务),先使用watch命令监听一些key

watch name myname
multi
set name lisi

在进行exec之前,有其他的客户端修改了key为name的值,则开启事务的客户端在提交事务的时候,会自动被取消。

此时watch会被自动去除,不需要再手动调用unwatch命令。

这种机制类似于CAS乐观锁。

 

2、rdb持久化机制

rdb是Redis默认的持久化机制,它速度比较快,存储的是一个二进制文件,占用空间小,方便传输。

rdb无法保证数据的绝对安全。

#rdb持久化配置

#1代表rdb执行的时机
#900秒内有1个key改变就执行持久化
save 900 1
save 300 10
save 60 10000

#开启rdb持久化压缩
rdbcompression yes

#rdb持久化的文件
dbfilename dump.rdb

 

3、aof持久化机制

#默认不开启aof
#appendonly no
appendonly yes

#aof文件名称
appendfilename "appendonly.aof"

#aof持久化时机,以下三个只能开启一种

# appendfsync always #每执行一个写操作,立即持久化。最安全但性能最低。
appendfsync everysec #每秒执行一次。
# appendfsync no #根据操作系统和环境,在一定时间内自动持久化。

aof持久化机制默认是关闭的,推荐同时开启rdb和aof,避免数据丢失。

aof持久化速度相对rdb要慢,存储的是文本文件,体积会比较大。

 

同时开启aof和rdb的注意事项:

1. redies优先加载aof持久化文件。

2. 如果先开启了rdb,再开启aof,如果rdb执行了持久化,那么rdb文件中的内容会被aof覆盖。(redis更相信aof)

 

上一篇:Redis高可用之持久化


下一篇:16-redis的持久化-RDB策略