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

网站建设摊销方法网站维护排名

网站建设摊销方法,网站维护排名,天猫国际采取的跨境电商网络营销方式,山东省住房城乡建设厅在数据处理的世界里#xff0c;事务#xff08;Transaction#xff09;是一个不可或缺的概念。它们确保了在一系列操作中#xff0c;要么所有的操作都成功执行#xff0c;要么都不执行。这就像是一个“全有或全无”的规则#xff0c;保证了数据的一致性和完整性。 今天事务Transaction是一个不可或缺的概念。它们确保了在一系列操作中要么所有的操作都成功执行要么都不执行。这就像是一个“全有或全无”的规则保证了数据的一致性和完整性。 今天我们就来聊聊Redis事务的使用看看如何通过它来提升我们的数据操作效率和安全性。 一、Redis事务的概念 Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令一个事务中所有命令都会被序列化。在事务执行过程会按照顺序串行化执行队列中的命令其他客户端提交的命令请求不会插入到事务执行命令序列中。 总结来说 redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。 Redis事务没有隔离级别的概念 批量操作在发送 EXEC 命令前被放入队列缓存并不会被实际执行也就不存在事务内的查询要看到事务里的更新事务外查询不能看到。 Redis不保证原子性 Redis中单条命令是原子性执行的但事务不保证原子性且没有回滚。事务中任意命令执行失败其余的命令仍会被执行。 redis事务的执行阶段 开始事务(multi)。命令入队。执行事务exec 二、Redis事务优缺点 对于Redis事务的概念我们已经有了基本的了解下面我们再来看看它都有哪些优缺点。 优点 一次性按顺序执行多个Redis命令不受其他客户端命令请求影响 事务中的命令要么都执行(命令间执行失败互相不影响)要么都不执行(比如中间有命令语法错误) 缺点 事务执行时不能保证原子性 命令入队每次都需要和服务器进行交互增加带宽 注意 当事务中命令语法使用错误时最终会导致事务执行不成功即事务内所有命令都不执行 当事务中命令知识逻辑错误就比如给字符串做加减乘除操作时只能在执行过程中发现错误这种事务执行中失败的命令不影响其他命令的执行。 三、Redis事务相关命令 Redis事务可以通过一系列命令来执行多个操作并确保这些操作可以原子性地执行。以下是Redis事务的相关命令及其作用 MULTI 开启一个事务。在调用此命令后Redis 会将后续的命令逐个放入队列中直到接收到 EXEC 命令为止。 EXEC 执行事务中的所有操作命令。一旦调用 EXEC 命令Redis 会原子性地执行队列中的所有命令。 DISCARD 取消事务放弃执行事务块中的所有命令。如果不想继续执行事务中的操作可以使用 DISCARD 命令来清除当前事务队列。 WATCH 监视一个或多个键如果在事务执行之前这些键被其他命令所改动那么事务将会被打断。 UNWATCH 取消所有由 WATCH 命令监视的键。如果不想继续监视某些键可以使用 UNWATCH 命令来取消监视。 需要注意的是在事务执行过程中其他客户端提交的命令请求不会插入到事务执行命令序列中这保证了事务的隔离性。同时Redis 事务提供了批量操作缓存的功能即在发送 EXEC 命令前所有操作都会被放入队列缓存。 四、Redis事务的使用 使用Redis事务的步骤如下 使用MULTI命令开启一个事务。 在事务中执行需要的命令如SET、GET等。 使用EXEC命令提交事务将事务中的命令一次性发送给Redis服务器执行。 如果需要取消事务可以使用DISCARD命令。 下面通过一些示例来讲解一下这些命令的使用方法 1、正常执行 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 set aa AA QUEUED 192.168.xxx.21:6379 set bb BB QUEUED 192.168.xxx.21:6379 set cc CC QUEUED 192.168.xxx.21:6379 set dd DD QUEUED 192.168.xxx.21:6379 exec 1) OK 2) OK 3) OK 4) OK 192.168.xxx.21:6379 get aa AA首先通过执行multi命令开始一个事务块。然后依次执行了四个set命令将键aa、“bb”、“cc和dd分别设置为对应的值AA”、“BB”、“CC和DD”。 每个set命令执行后返回的结果为QUEUED表示该命令已被加入到事务队列中等待执行。 接下来通过执行exec命令来提交事务一次性执行事务队列中的所有命令。执行结果为每个命令的返回值即OK。最后通过执行get aa命令获取键aa的值返回结果为AA。 2、取消事务 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 set aa 11 QUEUED 192.168.xxx.21:6379 set ee EE QUEUED 192.168.xxx.21:6379 discard OK 192.168.xxx.21:6379 get aa AA 192.168.xxx.21:6379 get ee (nil) 192.168.xxx.21:6379示例代码中首先通过执行multi命令开始一个事务块。然后依次执行了两个set命令将键aa设置为值11将键ee设置为值EE。每个set命令执行后返回的结果为QUEUED表示该命令已被加入到事务队列中等待执行。 接下来通过执行discard命令来取消事务放弃执行事务块内的所有命令。执行结果为OK。 最后通过执行get aa命令获取键aa的值返回结果为AA。而执行get ee命令获取键ee的值时由于之前已经取消了事务所以返回结果为(nil)表示该键不存在。 你还在苦恼找不到真正免费的编程学习平台吗?可以试试【云端源想】课程视频、知识库、微实战、云实验室、一对一咨询……你想要的全部学习资源这里都有重点是现在还是免费的点这里即可查看 3、事务队列中存在命令错误 如果在事务队列中存在命令性错误类似于java编译性错误则执行EXEC命令时所有命令都不会执行 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 set aa 22 QUEUED 192.168.xxx.21:6379 set bb 33 QUEUED 192.168.xxx.21:6379 setq cc 44 (error) ERR unknown command setq 192.168.xxx.21:6379 set ff FF QUEUED 192.168.xxx.21:6379 exec (error) EXECABORT Transaction discarded because of previous errors. 192.168.xxx.21:6379 get ff (nil) 192.168.xxx.21:6379 get bb BB 192.168.xxx.21:6379首先通过执行multi命令开始一个事务块。然后依次执行了三个set命令将键aa设置为值22将键bb设置为值33将键cc设置为值44。每个set命令执行后返回的结果为QUEUED表示该命令已被加入到事务队列中等待执行。 然而在执行第三个set命令时出现了错误。因为Redis中并没有名为setq的命令所以返回结果为(error) ERR unknown command ‘setq’。 接下来通过执行exec命令来提交事务一次性执行事务队列中的所有命令。由于之前已经出现了错误导致事务被中断所以执行结果为(error) EXECABORT Transaction discarded because of previous errors.。 最后通过执行get ff命令获取键ff的值时由于事务被中断所以返回结果为(nil)“表示该键不存在。而执行get bb命令获取键bb的值时由于事务被中断所以返回结果为BB”。 4、事务队列中存在语法错误 如果在事务队列中存在语法性错误类似于java的1/0的运行时异常则执行EXEC命令时其他正确命令会被执行错误命令抛出异常。 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 incr aa QUEUED 192.168.xxx.21:6379 set ff FF QUEUED 192.168.xxx.21:6379 set bb 22 QUEUED 192.168.xxx.21:6379 exec 1) (error) ERR value is not an integer or out of range 2) OK 3) OK 192.168.xxx.21:6379 get bb 22 192.168.xxx.21:6379 get ff FF 192.168.xxx.21:6379错误原因字符串不能累加1 5、watch监控 watch 命令可以监控一个或多个键一旦有其中一个键被修改被删除后面的事务就不会执行了。监控一直持续到 EXEC 命令事务中的命令是在exec之后才执行的所以在multi命令后可以修改watch监控的键值 假设我们通过watch命令在事务执行之前监控了多个Keys倘若在watch之后有任何Key的值发生了变化exec命令执行的事务都将被放弃同时返回Null multi-bulk应答以通知调用者事务执行失败。 (1)、执行watch不执行multi、exec 192.168.xxx.21:6379 get aa AA 192.168.xxx.21:6379 watch aa OK 192.168.xxx.21:6379 set aa 11 OK 192.168.xxx.21:6379 get aa 11 192.168.xxx.21:6379(2)、执行 watch 命令通知执行 MULTI、exec 192.168.xxx.21:6379 set aa Aa OK 192.168.xxx.21:6379 get aa Aa 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 set aa 11 QUEUED 192.168.xxx.21:6379 exec (nil) 192.168.xxx.21:6379 get aa Aa 192.168.xxx.21:6379(3)、exec 执行之后会自动执行 UNWatch 命令撤销监听操作 192.168.xxx.21:6379 set aa Aa OK 192.168.xxx.21:6379 get aa Aa 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 set aa 11 QUEUED 192.168.xxx.21:6379 exec (nil) 192.168.xxx.21:6379 get aa Aa 192.168.xxx.21:6379 set aa 11 OK 192.168.xxx.21:6379 get aa 11 192.168.xxx.21:6379(4) 、unwatch撤销监听 192.168.xxx.21:6379 get bb BBB 192.168.xxx.21:6379 watch bb OK 192.168.xxx.21:6379 multi OK 192.168.xxx.21:6379 unwatch QUEUED 192.168.xxx.21:6379 set bb 222 QUEUED 192.168.xxx.21:6379 exec 1) OK 2) OK 192.168.xxx.21:6379 get bb 222 192.168.xxx.21:6379以上就是Redis事务的概念及相关命令的使用Redis事务是一个非常强大的工具它可以帮助我们在处理数据的时候保持数据的一致性和完整性。通过使用Redis事务可以让我们的数据操作更高效、更安全。 希望这篇文章能够帮助你更好地理解和使用Redis事务
http://www.zqtcl.cn/news/545061/

相关文章:

  • 网站备案主体域名平面设计线下培训班多少钱
  • 优秀网站专题wordpress 外部调用插件
  • 域名服务网站建设科技公司做棋子网站怎么提高浏览量
  • 用易语言做攻击网站软件下载彩页设计多少钱
  • 个人网站可以做淘宝推广手机版怎么用百度快照
  • 制作网站的公司叫什么外包软件
  • 廊坊企业建站模板邱县手机网站建设
  • 辽宁响应式网站费用建设银行官网app
  • 河北黄骅市网站建设网站外链的优化方法
  • 青岛城阳网站制作网站建设详细步骤
  • 先做网站再付款 怎么回答设计方案步骤
  • 汕头建站模板济南网站建设富库网络
  • 创业网站建设方案项目书手机app设计软件
  • 建设端午节网站的目的主题wordpress语法高亮插件
  • 做网站开发使用百分比的好处深圳建设网站公司简介
  • 行距网站上海专业网站建设机构
  • 闵行手机网站建设鲅鱼圈规划建设局网站
  • 合肥市城乡和建设网站网页设计与网站建设区别
  • 青岛网站建设企业建站北京网站模仿
  • 广州建设网站的公司简介湛江建设厅网站
  • 做网站不赚钱了网站关键词排行查询
  • 印度人通过什么网站做国际贸易三门峡做网站
  • 网站排名快速提升工具招远建网站首选公司
  • 手机网站格式商城网游开发公司
  • 手机怎样创建网站长春网站建设哪家专业
  • 做pop网站定制开发教程
  • 成都响应式网站建报告问题
  • 做设计找素材的+网站有哪些建立平台什么意思
  • 网站设置在哪里找宁德网站建设制作
  • logo网站设计素材品牌高端网站建设公司