单页网站怎么做竞价百度网盘官网网页版

pingmian/2026/1/25 7:27:58/文章来源:
单页网站怎么做竞价,百度网盘官网网页版,动态门户网站建设价格,公司网站建站公司作为关系型数据库中一项非常重要的基础功能——事务#xff0c;在 Redis 中是如何处理并使用的#xff1f; 1.前言 事务指的是提供一种将多个命令打包#xff0c;一次性按顺序地执行的机制#xff0c;并且保证服务器只有在执行完事务中的所有命令后#xff0c;才会继续处… 作为关系型数据库中一项非常重要的基础功能——事务在 Redis 中是如何处理并使用的 1.前言 事务指的是提供一种将多个命令打包一次性按顺序地执行的机制并且保证服务器只有在执行完事务中的所有命令后才会继续处理此客户端的其他命令。 事务也是其他关系型数据库所必备的一项非常重要的能力。以支付的场景为例正常情况下只有正常消费完成之后才会减去账户余额。但如果没有事务的保障可能会发生消费失败了但依旧会把账户的余额给扣减了我想这种情况应该任何人都无法接受吧所以事务是关系型数据库中一项非常重要的基础功能。 2.事务基本使用 事务在其他语言中一般分为以下三个阶段 开启事务——Begin Transaction执行业务代码提交事务——Common Transaction业务处理中出现异常回滚事务——Rollback Transaction 以 Java 中的事务执行为例 // 开启事务 begin(); try {//......// 提交事务commit(); } catch(Exception e) {// 回滚事务rollback(); }Redis 中的事务从开始到结束也是要经历三个阶段 开启事务命令入列执行事务/放弃事务 其中开启事务使用 multi 命令事务执行使用 exec 命令放弃事务使用 discard 命令。 1开启事务 multi 命令用于开启事务实现代码如下 multi OKmulti 命令可以让客户端从非事务模式状态变为事务模式状态如下图所示 注意multi 命令不能嵌套使用如果已经开启了事务的情况下再执行 multi 命令会提示如下错误 (error) ERR MULTI calls can not be nested 执行效果如下代码所示 127.0.0.1:6379 multi OK 127.0.0.1:6379 multi (error) ERR MULTI calls can not be nested当客户端是非事务状态时使用 multi 命令客户端会返回结果 OK 如果客户端已经是事务状态再执行 multi 命令会 multi 命令不能嵌套的错误但不会终止客户端为事务的状态如下图所示 2命令入列 客户端进入事务状态之后执行的所有常规 Redis 操作命令非触发事务执行或放弃和导致入列异常的命令会依次入列命令入列成功后会返回 QUEUED 如下代码所示 multi OKset k v QUEUEDget k QUEUED执行流程如下图所示 注意命令会按照先进先出FIFO的顺序出入列也就是说事务会按照命令的入列顺序从前往后依次执行。 3执行事务/放弃事务 执行事务的命令是 exec 放弃事务的命令是 discard 。 执行事务示例代码如下 multi OKset k v2 QUEUEDexec 1) OKget k v2放弃事务示例代码如下 multi OKset k v3 QUEUEDdiscard OKget k v2执行流程如下图所示 3.事务错误回滚 事务执行中的错误分为以下三类 执行时才会出现的错误简称执行时错误入列时错误不会终止整个事务入列时错误会终止整个事务。 1执行时错误 示例代码如下 get k vmulti OKset k v2 QUEUEDexpire k 10s QUEUEDexec 1) OK 2) (error) ERR value is not an integer or out of rangeget k v2执行命令解释如下图所示 从以上结果可以看出即使事务队列中某个命令在执行期间发生了错误事务也会继续执行直到事务队列中所有命令执行完成。 2入列错误不会导致事务结束 示例代码如下 get k vmulti OKset k v2 QUEUEDmulti (error) ERR MULTI calls can not be nestedexec 1) OKget k v2执行命令解释如下图所示 可以看出重复执行 multi 会导致入列错误但不会终止事务最终查询的结果是事务执行成功了。除了重复执行 multi 命令还有在事务状态下执行 watch 也是同样的效果下文会详细讲解关于 watch 的内容。 3入列错误会导致事务结束 示例代码如下 get k v2multi OKset k v3 QUEUEDset k (error) ERR wrong number of arguments for set commandexec (error) EXECABORT Transaction discarded because of previous errors.get k v2执行命令解释如下图所示 4为什么不支持事务回滚 Redis 官方文档的解释如下 If you have a relational databases background, the fact that Redis commands can fail during a transaction, but still Redis will execute the rest of the transaction instead of rolling back, may look odd to you. However there are good opinions for this behavior: Redis commands can fail only if called with a wrong syntax (and the problem is not detectable during the command queueing), or against keys holding the wrong data type: this means that in practical terms a failing command is the result of a programming errors, and a kind of error that is very likely to be detected during development, and not in production.Redis is internally simplified and faster because it does not need the ability to roll back. An argument against Redis point of view is that bugs happen, however it should be noted that in general the roll back does not save you from programming errors. For instance if a query increments a key by 2 instead of 1, or increments the wrong key, there is no way for a rollback mechanism to help. Given that no one can save the programmer from his or her errors, and that the kind of errors required for a Redis command to fail are unlikely to enter in production, we selected the simpler and faster approach of not supporting roll backs on errors. 大概的意思是作者不支持事务回滚的原因有以下两个 他认为 Redis 事务的执行时错误通常都是编程错误造成的这种错误通常只会出现在开发环境中而很少会在实际的生产环境中出现所以他认为没有必要为 Redis 开发事务回滚功能不支持事务回滚是因为这种复杂的功能和 Redis 追求的简单高效的设计主旨不符合。 这里不支持事务回滚指的是不支持运行时错误的事务回滚。 4.监控 watch 命令用于客户端并发情况下为事务提供一个乐观锁CASCheck And Set也就是可以用 watch 命令来监控一个或多个变量如果在事务的过程中某个监控项被修改了那么整个事务就会终止执行。 watch 基本语法如下 watch key [key …] watch 示例代码如下 watch k OKmulti OKset k v2 QUEUEDexec (nil)get k v从以上命令可以看出如果 exec 返回的结果是 nil 时表示 watch 监控的对象在事务执行的过程中被修改了。从 get k 的结果也可以看出在事务中设置的值 set k v2 并未正常执行。 执行流程如下图所示 注意 watch 命令只能在客户端开启事务之前执行在事务中执行 watch 命令会引发错误但不会造成整个事务失败如下代码所示 multi OKset k v3 QUEUEDwatch k (error) ERR WATCH inside MULTI is not allowedexec 1) OKget k v3执行命令解释如下图所示 unwatch 命令用于清除所有之前监控的所有对象键值对。 unwatch 示例如下所示 set k v OKwatch k OKmulti OKunwatch QUEUEDset k v2 QUEUEDexec 1) OK 2) OKget k v2可以看出即使在事务的执行过程中k 值被修改了因为调用了 unwatch 命令整个事务依然会顺利执行。 5.事务在程序中使用 以下是事务在 Java 中的使用代码如下 import redis.clients.jedis.Jedis; import redis.clients.jedis.Transaction;public class TransactionExample {public static void main(String[] args) {// 创建 Redis 连接Jedis jedis new Jedis(xxx.xxx.xxx.xxx, 6379);// 设置 Redis 密码jedis.auth(xxx);// 设置键值jedis.set(k, v);// 开启监视 watchjedis.watch(k);// 开始事务Transaction tx jedis.multi();// 命令入列tx.set(k, v2);// 执行事务tx.exec();System.out.println(jedis.get(k));jedis.close();} }6.小结 事务为多个命令提供一次性按顺序执行的机制与 Redis 事务相关的命令有以下五个 multi开启事务exec执行事务discard丢弃事务watch为事务提供乐观锁实现unwatch取消监控取消事务中的乐观锁 正常情况下 Redis 事务分为三个阶段开启事务、命令入列、执行事务。Redis 事务并不支持运行时错误的事务回滚但在某些入列错误如 set key 或者是 watch 监控项被修改时提供整个事务回滚的功能。 7.思考题 Redis 事务中如何解决并发修改的问题Redis 支持事务回滚吗使用 Redis 事务时会出现哪三种错误这三种错误对事务有何影响只有高手才能答对的问题你能答上来几个 8.参考鸣谢 https://redis.io/topics/transactions https://redisbook.readthedocs.io/en/latest/feature/transaction.html#id3 关注下方二维码订阅更多精彩内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

预约挂号php网站ftp急着后台密码忘记了wordpress添加邮箱

mipi调试过程 1、前言2、开发环境3、调试过程3.1、下载openharmony3.2源码3.2、设备树上增加mipi-dsi屏幕的节点3.3、 分析kernel显示不出来画面3.4、 mipi屏幕显示效果图1、前言 由于工作需要,RK3568需要支持openharmony3.2系统版本,需要重新移植下载源码并且适配自家公司的…

简易手机网站开发临沂市建设局网站勘察设计

曾经有一句话很经典:勇敢说“No”! 这句话的背景是,大多数人为了取悦他人,往往委曲求全,不敢说“不”。因此,说“不”需要更大的勇气和力量。再进一步,说“不”的人拥有更大的主导权&#xff0…

如何才能做好品牌网站建设策划公司提供平台

消息延时做了什么特殊处理?是发送延时,还是消息处理延时?延时的精度如何?通常我们使用Handler的消息延时都是调用sendMessageDelayed函数实现的,其中delayMillis是需要延时的毫秒。通过跟踪sendMessageDelayed函数可以…

淮南做网站公司上海网站建设书生商友

在创建ODX数据库的过程中,我们需要录入大量的数据以及应对多种数据格式。这不仅费时费力,而且还需很高的人力成本,且其错误率也非常高,从而导致开发速度缓慢、效率低下。基于多年的汽车行业诊断经验,我们开发了VisualO…

网站如何制作做吸引客户城市建设模拟游戏官方网站

本文说下Elasticsearch基本操作之索引操作 文章目录 概述创建索引创建索引示例重复创建索引示例 查看索引查看所有索引查看单个索引 删除索引删除索引 概述 由于是使用命令来操作Elasticsearch,可以使用kibana,postman和apifox等工具 我使用了apifox来执…

网站建设推广 公司一般纳税人企业所得税

一、概念 对于每一个由协程构建器开启的协程,都会返回一个 Job 实例用来管理协程的生命周期。launch()直接返回 Job实现,async() 返回的 Deferred 实现了 Job接口。 Job public fun start(): Boolean public fun cancel(cause: CancellationException? …

网站建设方案计划书人员规划文章作者标签WordPress

题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入…

国外室内设计案例网站线上宣传的方式

Blade模版简介 Blade模版的好处: 模版继承(template inheritance)视图片段(sections)部分指令: extend(‘xxx’)为子页面指定所继承的页面布局模版section(‘xxx’)为子页面提供所继承的页面中指定的部分…

刚做的网站关键词就上来了什么是网络营销产生的基础

根据新浪报道,据新华社10月14日电 利用当网管的机会,破解密码,非法进入交警计算机系统为他人删除车辆交通违法记录牟利。辽宁省鞍山市铁西区检察院透露,当地某公司员工程尚军因涉嫌破坏计算机信息系统罪,已于10月初被依…

会议响应式网站开发服务公司取名字大全

什么是多态?父类指针即根据指向的不同对象,响应同一消息(函数调用),产生不同行为。多态三要素?1,继承2,虚函数重写3,父类指针(引用)指向子类对象多态的实现很简答,让我们来看一段代码…

保定php网站制作湖南省建设厅

参考:https://blog.csdn.net/koulongxin123/article/details/122676149 1.什么是强化学习? (1)定义 基于环境的反馈而行动,通过不断与环境的交互、试错,最终完成特定目的或者使得整体行动收益最大化(是一种通过与环境…

自定义导航网站 源码深圳网站建设优化czzhwm

1、Android移植主要就是Linux内核移植,而Linux内核移植主要是Linux驱动移植,为了开发和测试Linux驱动,要在Ubuntu下搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境; 2、Android源代码包括:内…

做本地的门户网站链家网站谁做的

nicinfo 在QNX操作系统中,nicinfo是一个用于显示网络接口卡(NIC)信息的命令行工具。它可以提供有关系统中所有可用网络接口卡的详细信息,例如接口名称、MAC地址、IP地址、掩码、广播地址、传输单元大小等等。 通过nicinfo命令可…

2010年4月江苏省03340网站建设与管理答案.ent做的网站有哪些

刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 目录 669. 修剪二叉搜索树 108. 将有序数组转换为二叉搜索树 538. 把二叉搜索树转换为累加树 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界…

昆明猫咪科技网站建设做网站公司哪家强

HBase主要性能压力测试有两个,一个是 HBase 自带的 PE,另一个是 YCSB,先简单说一个两者的区别。PE 是 HBase 自带的工具,开箱即用,使用起来非常简单,但是 PE 只能按单个线程统计压测结果,不能汇…

如东网站建设网页游戏排行榜前十名2021

当在Windows系统中开发网络应用程序时,经常会遇到 "Address already in use: bind" 的错误。这个错误通常表示正在尝试绑定的端口已经被其他程序占用了。本篇技术博客将介绍如何在Windows系统中解决这个问题,并提供实用的解决方案。 在网络应用…

佛山专业做网站的360搜索引擎入口

STM32-GPIO 介绍 什么是GPIO? GPIO(通用输入/输出)是一种用于与外部设备进行数字通信的通用硬件接口。它允许微控制器或其他数字电路的引脚以灵活的方式配置为输入或输出,并在运行时进行动态控制。GPIO可用于连接和控制各种外围…

网站排名易下拉技巧电子商务营销渠道有哪些

2020FRM考试计算器:想一想FRM一级考试基本上按计算器停不下来,我们就一定要买一个简单易操作的计算器,但是GARP对于FRM考生所使用的计算器是有规定的:所有参加FRM考试的考生必须使用GARP指定的计算器,如果考生在考试期…

深圳西乡网站建设公司渝发建设官方网站

Matlab是一种功能强大的数值计算和数据分析软件,它在解决各种数学问题中都具有很高的效率和灵活性。其中,Matlab也可以用于求解标准规划问题,即线性规划问题。 标准规划问题是一种常见的优化问题,其目标是在给定的约束条件下&…

免费写作网站江苏建设网站酒店装修合同范本

http://blog.sina.com.cn/s/blog_6c9d65a1010180mg.html转载于:https://www.cnblogs.com/wangkongming/p/3516449.html