什么是事务
Redis执行指令过程中,多条连续执行的指令被干扰,打断,插队
127.0.0.1:6379>set name itheima
127.0.0.1:6379>get name
127.0.0.1:6379>set name itcast
127.0.0.1:6379>get name
itheima
itcast
客户端1
客户端2
①
②
③
itcast
一个队列中,一次性、顺序性、排他性的执行一系列命令
目
事务简介
事务基本操作
锁
redssion
Contents
事务基本操作
事务的边界
multi
exec
事务基本操作
事务的基本操作
开启事务
multi
作用
设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中
执行事务
exec
作用
设定事务的结束位置,同时执行事务。与multi成对出现,成对使用
注意:加入事务的命令暂时进入到任务队列中,并没有立即执行,只有执行exec命令才开始执行
事务基本操作
事务的基本操作
事务定义过程中发现出了问题,怎么办?
取消事务
作用
终止当前事务的定义,发生在multi之后,exec之前
discard
事务基本操作
事务的工作流程
时效性数据的存储结构
EXPIRE
EXPIREAT
PEXPIRE
PEXPIREAT
SETEX
key
expires
0x0110
0x4C3F
135954124
135957390
Redis 存储空间
name
age
66
itheima
0x0110
0x4C3F
数据删除策略
数据删除策略的目标
在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或
内存泄露
数据删除策略
定时删除
创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作
优点:节约内存,到时就删除,快速释放掉不必要的内存占用
缺点:CPU压力很大,无论CPU此时负载量多高,均占用CPU,会影响redis服务器响应时间和指令吞吐量
总结:用处理器性能换取存储空间(拿时间换空间)
expires
0x0110
135954124
Redis 存储空间
name
itheima
0x0110
135954122
135954123
135954124
135954124
数据删除策略
惰性删除
数据到达过期时间,不做处理。等下次访问该数据时
如果未过期,返回数据
发现已过期,删除,返回不存在
优点:节约CPU性能,发现必须删除的时候才删除
缺点:内存压力很大,出现长期占用内存的数据
总结:用存储空间换取处理器性能
expireIfNeeded()
(拿时间换空间)
expires
0x0110
135954124
Redis 存储空间
name
itheima
0x0110
135954122
135954123 <