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

Redis——事务实现以及应用场景

        本文介绍Redis事务相关的原理以及知识点,从redis的常用命令出发,深入理解redis在日常工作中的实际场景使用用法。

本文目录

    • 一、Redis事务简介
    • 二、事务相关命令
    • 三、事务应用场景

一、Redis事务简介

Redis 事务本质上是一个命令队列。用户可以使用MULTI命令开启一个事务块,在这个块内,后续输入的命令不会立即执行,而是被缓存到一个队列中。当调用EXEC命令时,Redis 会按顺序依次执行队列中的所有命令。如果在事务执行过程中发生错误,Redis 默认不会回滚已经执行的命令。不过,从 Redis 2.6.5 版本开始,如果在EXEC执行前发现命令入队错误(命令语法错误),整个事务将不会执行。


二、事务相关命令

1.MULTI:用于开启一个事务块,标志着事务的开始。在执行MULTI之后,Redis 进入事务状态,后续输入的命令将被存入事务队列。

MULTI

2.EXEC:用于触发事务的执行。Redis 会按顺序执行事务队列中的所有命令,并返回每个命令的执行结果。如果在事务执行过程中某个命令失败,会继续执行后续命令,而不会回滚之前已执行的命令。

SET name "redis"
SET age  10
EXEC

如上,SET name "redis"SET age 10两条命令会被依次执行。

  1. DISCARD:用于取消事务。在调用MULTI开启事务后,执行DISCARD会清空事务队列,取消事务的执行,Redis 会退出事务状态。
MULTI
SET name "redis"
DISCARD

原本入队的SET name "redis"命令不会被执行,事务被取消。

  1. WATCHWATCH命令用于为事务提供乐观锁机制。可以监控一个或多个键,在执行EXEC命令时,如果被监控的键在事务开启后被其他客户端修改,那么整个事务将不会执行,并返回(nil)
WATCH name
MULTI
GET name
SET name "redis1"
EXEC

如上,如果在WATCH name之后,EXEC执行之前,name被其他客户端修改,那么GET nameSET name "redis1"这两个命令都不会执行。


三、事务应用场景

要注意,redis中的事务并不能保证强一致性,因为Redis事务在命令执行失败时默认不回滚已执行命令,如果需要实现强一致性需要结合业务逻辑以及WATCH进行实现,所以它只适用于弱一致性场景。

常使用的弱一致性场景:
点赞计数场景:在社交平台中,用户对一篇帖子进行点赞操作。可以使用Redis事务来增加帖子的点赞数,并记录点赞用户的信息,然后通过消息队列进行数据同步持久化。

MULTI​
# 增加帖子点赞数​
INCR post:1:like_count​
# 记录点赞用户​
SADD post:1:likers user:5​
EXEC



← 上一篇 Java进阶——常用类及常用方法详解
记得点赞、关注、收藏哦!
下一篇 Java进阶——数组超详细整理 →

相关文章:

  • 网络核心技术术语大全(2025版)
  • 机器学习——数据清洗(缺失值处理、异常值处理、数据标准化)
  • 设计模式之装饰器模式:原理、实现与应用
  • STC89C52单片机学习——第25节: [11-1]蜂鸣器
  • GitHub Copilot两期连看:开发流程全览及 Copilot 在 SQL 开发中的妙用
  • 【数据分享】2000—2024年我国省市县三级逐年归一化植被指数(NDVI)数据(年最大值/Shp/Excel格式)
  • 【云原生之kubernetes实战】在k8s环境中高效部署minio对象存储(详细教程)
  • Cursor IDE 入门指南
  • 个人学习编程(3-18) leetcode刷题
  • C++动态规划从入门到精通
  • Docker Desktop配置国内镜像源教程
  • k8s中PAUSE容器与init容器比较 local卷与hostpath卷比较
  • 【css酷炫效果】纯CSS实现波浪形分割线
  • Ubuntu24.04安装ROS2 Jazzy
  • R语言:初始环境配置
  • 利用 5W2H 分析法学习编写 C 语言程序
  • 如何开始搭建一个交易所软件?从规划到上线的完整指南
  • MongoDB 只能存储能够序列化的数据(比如字符串、数字等),而 Python 的 UUID 对象并不是直接可以存入数据库的格式。
  • 10-BST(二叉树)-建立二叉搜索树,并进行前中后遍历
  • Bash环境定制git分支提示符暨JDK版本切换脚本
  • 韩国代总统、国务总理韩德洙宣布辞职
  • 今年4月上海一二手房成交面积同比增21%,二手房成交2.07万套
  • 铺就长三角南北“交通动脉”,乍嘉苏改高速扩建项目首桩入位
  • 吴志朴当选福建德化县人民政府县长
  • 国际锐评:菲律宾“狐假虎威”把戏害的是谁?
  • 现场聆听总书记讲话,“00后”博士和大模型CEO都“热血沸腾”