首页 > 数据库 >redis事务

redis事务

时间:2023-05-11 17:15:30浏览次数:35  
标签:事务 错误 语法错误 redis 命令 执行

redis事务

概述

redis中事务是一组命令的集合。事务同命令一样是redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。

事务的原理是先将属于一个事务的命令发送给redis,然后再让redis依次执行这些命令

redis保证一个事务中的所有命令要么都执行,要么都不执行。除此之外,redis的事务还能保证一个事务内的命令一次执行而不被其他命令插入。

使用

img

首先使用MULTI命令告诉redis:"下面我发给你的命令属于同一个事务,你先不要执行,而是把它们暂时存起来。"redis回答:"ok"

而后我们发送了两个SADD命令,redis返回QUEUED表示这两条命令已经进入等待执行的事务队列中了。

当把所有要在同一个事务中执行的命令都发给redis后,我们使用EXEC命令告诉redis将等待执行的事务队列中的所有命令按照发送顺序依次执行。EXEC命令的返回值就是这些命令的返回值组成的列表,返回值顺序和命令的顺序相同。

错误处理

  1. 语法错误。语法错误指命令不存在或者命令参数的个数不对。只要有一个命令有语法错误,执行EXEC命令后redis就会直接返回错误,连语法正确的命令也不会执行。

  2. 运行错误。运行错误指在命令执行时出现错误,比如使用散列类型的命令操作集合类型的键,这种错误在实际执行之前redis是无法发现的,所以在事务里这样的命令是会被reids接受并执行的。如果事务里一条命令出现了运行错误,事务里其他命令依然会继续执行

redis的事务没有关系数据库事务提供的回滚功能

标签:事务,错误,语法错误,redis,命令,执行
From: https://www.cnblogs.com/zpf253/p/17391623.html

相关文章

  • 聊一聊redis十种数据类型及底层原理
    概述Redis是一个开源的高性能键值数据库,它支持多种数据类型,可以满足不同的业务需求。本文将介绍Redis的10种数据类型,分别是string(字符串)hash(哈希)list(列表)set(集合)zset(有序集合)stream(流)geospatial(地理)bitmap(位图)bitfield(位域)hyperloglog(基数统计)String概述string......
  • python redis 操作
    目的:验证redis集群模式,高可用场景insert.pyfromredisclusterimportClusterBlockingConnectionPool,RedisCluster,ClusterConnectionPooldefinit():startup_nodes=[{'host':'10.12.16.50','port':6379},{......
  • JdbcTemplate 开启事务
    JdbcTemplatejdbcTemplate=newJdbcTemplate();//获取DataSourceDataSourcedataSource=jdbcTemplate.getDataSource();//获取ConnectionConnectionconnection=DataSourceUtils.getConnection(dataSource);//关闭jdbc自动提交connection.setAutoCommit(false);try{/......
  • 从缓存的本质说起,说服技术大佬用Redis
    摘要:在技术领域中,没有银弹。我们需要不断探索和研究新的技术,结合具体问题和需求,选择最适合的解决方案。本文分享自华为云社区《知乎问题:如何说服技术老大用Redis?》,作者:勇哥java实战分享。最近在某问答平台看到一个技术讨论:如何说服技术老大用Redis?“他总觉得用Redis每次都要......
  • 手写分布式事务demo
    这个例子仿照seata的AT模式分布式事务产生: 其中localsql和other方法都是对当前服务数据库进行查询,但remoteMthod接口调用的远程服务库,单纯使用Spring的@Transactional注解无法回滚其他服务 ......
  • Windows下安装Redis,并设置开机自动启动
    这篇文章是在Windows上安装redis,关于如何在Linux上安装redis可以参看Redis下载地址:https://github.com/tporadowski/redis/releases1.下载redis,并解压2.打开cmd命令行进入redis文件夹下,输入如下命令redis-server.exeredis.windows.conf 3.打开一个新的cmd,输入命令redis-serve......
  • Linux CentOS7下安装Redis
    这篇文章是在Linux上安装redis,关于如何在window上安装redis可以参看1.下载Redis。进官网下载最新稳定版 https://redis.io/download2.使用工具上传到linux上,默认根目录root即可 3.解压redis,并把redis移到/usr/local目录下 tarxzfredis-6.0.9.tar.gz//解压mvredis-6.0.9......
  • SpringBoot+Redis+自定义注解实现接口防刷(限制不同接口单位时间内最大请求次数)
    场景SpringBoot搭建的项目需要对开放的接口进行防刷限制,不同接口指定多少秒内可以请求指定次数。比如下方限制接口一秒内最多请求一次。 注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、实现思路首先自定义注解,添加时间区间和最大请求次数字段。然后自定义......
  • 使用spring-plugin和redisson实现延迟队列
    目录一、介绍二、步骤三、运行效果四、源码一、介绍本文主要介绍如何使用springplugin和redisson去实现延迟队列二、步骤pom.xml引入依赖包<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>sp......
  • 【redis】哨兵监控原理
    redis-主从模式弊端:一、master节点异常shutdown后,从机原地待命,从机数据可以查询(不可以写入),等待主机重启归来二、复制延时,信号衰减redis-哨兵监控:  是什么?    哨兵即为吹哨人,可以巡查监控后台master主机是否故障,如果故障可以根据投票数自动将一个从库转换为新的ma......