Redis基本操作进阶篇-[亲测有效]

Redis基本操作进阶篇-[亲测有效]Redis中的事务(transaction)是一组命令的集合。一个事务中的命令要么全部执行,要么都不执行。Redis的事务没有关系数据库事务提供的回滚(rollback)功能。

Redis基本操作进阶篇-

事务

概述

Redis中的事务(transaction)是一组命令的集合。一个事务中的命令要么全部执行,要么都不执行。Redis的事务没有关系数据库事务提供的回滚(rollback)功能。

Redis通过MULTI 标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列(queued)当中,最后由EXEC 命令原子性(atomic)地执行。

Redis保证一个事务中的所有命令要么都执行,要么都不执行。如果EXEC命令之前出现错误,则Redis会清空事务队列,事务中的所有命令都不执行。

此外,Redis的事务还能保证一个事务内的命令依次执行而不被其他命令插入。

事务基础语法

multi # 开启事务

set name kang # 使命令进入等待执行的事务队列中

set age 18 # 使命令进入等待执行的事务队列中

exec # 按顺序执行事务块内所有的命令

错误处理

语法错误

Redis2.6.5之前的版本会忽略有语法错误的命令,然后执行事务中其它语法正确的命令。就之后版本而言,只要有一个命令有语法错误,执行EXEC命令后,Redis就会直接返回错误,不执行任何命令。

示例如下:

multi

set key name kang

key * # 语法错误,返回值:(error) ERR unknown command `key`, with args beginning with: `*`, 

exec # 返回值:(error) EXECABORT Transaction discarded because of previous errors.

运行错误

运行错误指的是在命令执行中出现的错误,如果Redis中出现了运行错误,事务中其它正确的命令会继续执行。

示例如下:

multi

set name kang

sadd name kang

set age 18

exec

# 返回值:
# 1) OK
# 2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
# 3) OK

WATCH命令

WATCH命令用于监视一个或多个键 ,如果在事务执行之前监视的键被其他命令修改,那么事务将被打断。

set name kang

watch name

set name Kang

multi

set name kang

exec
# 返回值:(nil)

get name # 返回值:"Kang"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5591.html

(0)
上一篇 2023-05-03
下一篇 2023-05-03

相关推荐

  • Oracle学习笔记二十八:视图的使用「建议收藏」

    Oracle学习笔记二十八:视图的使用「建议收藏」一、视图概念 • 视图概念 • 视图是基于一个表或多个表或视图的逻辑表(虚表),本身不包含数据,通过它可以对表里面的数据进行查询。 • 基表 • 视图是从一个或多个实际表中获得的,这些表的数据存放在数

    2023-05-23
    96
  • Python读取JSON文件并生成标题

    Python读取JSON文件并生成标题在Python开发中,读取JSON文件并且生成可视化的标题是常见的需求。JSON文件作为一种轻量级的数据交换格式,它易于人们理解和编写,同时易于计算机解析和生成,因此在很多场景下,JSON文件得到了广泛的应用。Python是一种功能强大且易学易用的编程语言,它提供了强大的JSON解析功能,并且支持生成各种可视化效果,本文将介绍如何使用Python读取JSON文件,并生成h1标题的方法。

    2024-04-22
    17
  • mysql底层是什么数据结构_简述python的执行原理

    mysql底层是什么数据结构_简述python的执行原理前言 文章首发于微信公众号【码猿技术专栏】。 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗? 假设你要查询城市是苏州

    2023-02-17
    101
  • Python安装后CMD无法运行的解决方法

    Python安装后CMD无法运行的解决方法Python是一种高级编程语言,被广泛用于各种web应用程序和数据科学领域。但是,有时在安装Python后,无法在命令提示符(CMD)中运行python命令。本文将介绍如何解决这个问题。

    2024-04-22
    16
  • Python字典:简洁高效的数据结构

    Python字典:简洁高效的数据结构Python中的字典是非常强大的数据结构,它提供了一种高效的存储和查找数据的方式。在字典中,我们可以将任意类型的对象作为键,并且可以以O(1)的时间复杂度进行查找和操作。本文将从多个方面对Python字典进行详细的阐述,希望能够帮助读者充分理解Python字典的原理和用法。

    2024-03-13
    34
  • Boltdb学习笔记之三–事务与并发控制[亲测有效]

    Boltdb学习笔记之三–事务与并发控制[亲测有效]如果说数据库是软件工程领域的皇冠,而事务与并发控制可称之为皇冠上的钻石。本节将详细分析boltdb中如何实现事务与并发控制 事务 事务定义 boltdb中使用Tx表示事务, 定义如下: // Tx …

    2023-04-13
    106
  • 数据库主键约束「建议收藏」

    数据库主键约束「建议收藏」mssql数据库的主键约束中,主键名查询: 修改主键名称的方法:

    2022-12-19
    106
  • 日常记录-oracle建立定时计划,调用存储过程「建议收藏」

    日常记录-oracle建立定时计划,调用存储过程「建议收藏」日常记录-oracle建立定时计划,调用存储过程 前言 oracle 数据库有一个表,数据量50亿多,现在需要对表进行全量的 update 操作,因为全表的数据量过大,所以无法直接update,最后…

    2023-01-24
    115

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注