当前位置: 首页 > news >正文

Redis的事务管理

redis也支持事务,但与MySQL等关系型数据库相比,redis的事务比较简单。

一、redis事务的特点
1、redis的事务是一组命令集合

    可以把redis的事务看成一个命令的缓存,把一组要执行的命令添加到集合中,然后按顺序一起执行。

2、redis事务没有隔离级别

    由于redis是单线程的,下一个命令必须在上一个命令完成后才会执行。因此不会有多个事务同时执行的情况,因此也就不需要定义隔离级别。

3、redis事务不保证原子性

    redis的单条命令是保证原子性的,但是事务不保证原子性,即事务中某个命令的失败不会影响其它命令的执行和结果。

二、事务的实现步骤
1、开启事务

multi命令用于开启一个事务,此命令没有参数

2、添加命令

    编写要执行的数据库操作命令

3、执行事务或取消事务

1)使用exec命令执行事务

示例

multi
set str1   '字符串1'
set str2 '字符串2'
exec

2)使用discard命令取消事务

multi
set str1 '字符串1'
set str2 '字符串2'
discard

三、事务监听
    事务监听可以用于做为事务锁(乐观锁)使用,当另一个程序修改了某个key的值时,当前事务会被中断执行。

1、开启监听

    在事务创建之前使用watch命令可以监听key的变化,当使用exec开始执行事务时,会检查被监听的key是否有变化,如果有变化,则中断事务的执行。

语法

watch key [key...]

2、取消监听

    当事务已开始执行或是取消,则会自动取消监听,也可以使用unwatch命令手动结束监听。

示例

watch str1

multi

set str1 '字符串1'
unwatch //取消监听,后面必须还有语句,否则无效
set str2 '字符串2'
exec       //因在执行前修改了str1的值,执行会被中断

//在另一个命令行窗口执行以下命令,此命令需要在exec之前执行
set str1 '字符串11'
 

 文章来源于哔站《Redis的事务管理》

更多学习视频和专栏文章请到哔站个人空间: 布道师学院的个人空间-布道师学院个人主页-哔哩哔哩视频

更多资源和项目下载请到:”开源吧(找实战项目和毕设项目的好网站)“ ​ :开源吧

 

http://www.lryc.cn/news/181118.html

相关文章:

  • openwrt (一):特殊的WiFi驱动移植方法
  • PCL 计算点云中值
  • 【工作记录】前后端分离场景下CAS单点登录的集成思路与实践@20230926
  • 阿里云数据库RDS有哪些?细数关系型数据库大全
  • 【计算机网络】因特网中的电子邮件
  • 【C++11】多线程
  • 【vue3】shallowReactive与shallowRef;readonly与shallowReadonly;toRaw与markRaw
  • 手机建模教程 | 如何从易模App中导出模型?有哪些格式?含贴图吗?
  • 数据分析技能点-机器学习优化思想
  • 应用架构的演进:亚马逊的微服务实践
  • leetCode 55.跳跃游戏 贪心算法
  • CF505B Mr. Kitayuta‘s Colorful Graph
  • c#设计模式-结构型模式 之 组合模式
  • 【Rust日报】2023-09-30 使用Rust做web抓取
  • 【密评】商用密码应用安全性评估从业人员考核题库(三)
  • MySQL进阶_查询优化和索引优化
  • Hadoop2复安装过程详细步骤
  • 【Java-LangChain:面向开发者的提示工程-7】文本扩展
  • 竞赛 基于设深度学习的人脸性别年龄识别系统
  • 从技能需求到就业前景,了解前端和后端开发的优缺点和个人选择
  • Flutter笔记:AnimationMean、AnimationMax 和 AnimationMin 三个类的用法
  • 华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gogs服务器
  • 操作系统--分页存储管理
  • 【算法练习Day10】有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值
  • 10.1 校招 实习 内推 面经
  • Redis中Set类型的操作
  • 正确完成实时 AI
  • 深度学习笔记之线性代数
  • Python与Scrapy:构建强大的网络爬虫
  • kind 安装 k8s 集群