您当前的位置: 首页 >  redis

white camel

暂无认证

  • 2浏览

    0关注

    442博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Redis——Redis事务、watch锁、Redis实现分布式锁、数据的删除策略、淘汰策略

white camel 发布时间:2020-07-20 10:37:29 ,浏览量:2

目录
  • Redis事务
    • 事务的操作
    • 事务的工作流程
    • Watch锁
    • 分布式锁
  • Redis中数据的删除策略
    • 一、过期数据
      • 定时过期
      • 惰性过期
      • 定期过期
    • 二、内存淘汰策略
一、Redis事务

跳转到目录

  • redis事务就是一个命令执行的队列,将一系列预定义命令包装成一个整体(一个队列)。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰

在这里插入图片描述

  • Redis 事务本质:一组命令的集合, 一个事务中的所有命令都会被序列化,在事务执行过程的中,会按照顺序执行!

  • Redis事务没有没有隔离级别的概念!

    • 所有的命令在事务中,并没有直接被执行!只有发起执行命令exec的时候才会执行;
  • Redis单条命令式保存原子性的,但是事务不保证原子性!

redis的事务:

  • 开启事务(multi
  • 命令入队(…)
  • 执行事务(exec
1、 事务的操作

跳转到目录 在这里插入图片描述

  • 没有添加事务的时候 在这里插入图片描述 在这里插入图片描述 同一个服务器开了两个客户端, 同时操作name, 此时就无法保证name的一致性;

  • 添加事务 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 使用MULTIEXEC命令就可以保证事务的一致性;

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2、事务的工作流程

跳转到目录 在这里插入图片描述

3、Watch锁

跳转到目录

  • 线程1用来监听一个key, 当事务还没执行完, 别的线程2去操作这个key, 此时watch就会通知线程1; 本次事务就失败了 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 watch锁操作 在这里插入图片描述 在这里插入图片描述一个事务执行完后, watch监视锁就会释放掉; 为了演示当修改money的时候事务会执行失败, 此时还用两个窗口来模拟多线程;

当这个事务还没结束的时候, 修改money; 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 此时事务就执行失败, 因为 watch一直在监听着money, 如果有别的线程修改该属性,watch就会通知事务, Money被修改, 本次事务就执行失败了!

在这里插入图片描述

4、分布式锁 setnx

跳转到目录 在这里插入图片描述 类似一种同步锁操作, setnxkey不存在的时候才可以操作;

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

二、Redis中数据的删除策略

跳转到目录

1、过期数据

跳转到目录 在这里插入图片描述 如果不删除, 将消耗内存, 删除策略如下:

  • 定时删除
  • 惰性删除
  • 定期删除

Redis中的数据,在expire中以哈希的方式保存在其中。其value是数据在内存中的地址,filed是对应的生命周期 在这里插入图片描述

1、定时删除

跳转到目录

拿处理器的性能换取空间 : 时间换空间 在这里插入图片描述

2、惰性删除

跳转到目录

存储空间换取处理器性能 : 时间换空间 在这里插入图片描述

3、定期删除

跳转到目录

周期性抽查存储空间 (随机抽查, 重点抽查) 在这里插入图片描述 在这里插入图片描述

三种删除策略的对比

在这里插入图片描述

2、内存淘汰策略

跳转到目录

Redis详解(十一)------ 过期删除策略和内存淘汰策略

  • 在Redis中, 当每执行一个写命令的时候, 都会调用freeMemoryIfNeeded()的函数, 检测内存是否充足; 如果内存不足, 会临时删除一些数据, 清除数据的策略就是逐出算法
  • 对数据尝试清除后, 内存仍然不够存入当前的写命令, 此时就会报OOM错误 (内存溢出)

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

  • LRU:最长时间没被使用的数据
  • LFU:一段时间内使用次数最少的数据

在这里插入图片描述

关注
打赏
1661428283
查看更多评论
立即登录/注册

微信扫码登录

0.0912s