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)