应用场景: 例如秒杀。瞬时大量写入订单到数据库,导致数据库无法及时响应。此时可以采用Redis做消息队列,把所有需要写入的数据先写入Redis消息队列中,然后同时在服务器开启php-cli进程循环读取队列中的数据,异步写入数据库。使用redis做消息队列可能会出现消息丢失的情况,因为没有消息接收的确认机制。大型程序,应该使用类似RabitMQ来做专业消息队列。 1、使用publish/subs
转载 2023-08-31 16:31:44
51阅读
Redis事务Redis事务定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队。组队过程:Multi、Exec、discard从输入Multi 命令开始,输入的命令都会依次进入命令队列中,但不会执行直到输入 Exec 后,Redis会将之前的命令
转载 2024-05-15 11:01:24
92阅读
在最近的业务中,接到了一个需要处理约十万条数据的需求。这些数据都以字符串的形式给到,并且处理它们的步骤是异步且耗时的(平均处理一条数据需要 25s 的时间)。如果以串行的方式实现,其耗时是相当长的:总耗时时间 = 数据量 × 单条数据处理时间 T = N * t (N = 100,000; t = 25s)总耗时时间 = 2,500,000 秒 ≈ 695 小时 ≈ 29 天显然,我们不能简单地把
消息队列RocketMQ版提供的分布式事务消息适用于所有对数据最终一致性有强需求的场景。本文介绍消息队列RocketMQ版事务消息的概念、优势、典型场景、交互流程以及使用过程中的注意事项。概念介绍事务消息:消息队列RocketMQ版提供类似X或Open XA的分布式事务功能,通过消息队列RocketMQ版事务消息能达到分布式事务的最终一致。半事务消息:暂不能投递的消息,发送方已经成功地将消息发送到
1、事务的概念 所谓事务是指一组相互依赖的操作单元的集合,用来保证对数据库的正确修改,保持数据的完整性,如果一个事物的某个单元操作失败,将取消本次事务的全部操作。 ACID: 原子性(Atomicity):每个事物是一个不可分割的整体,只有所有的操作单元执行成功,整个事务才成功,否则此次事务就失败,所有执行成功的操作单元必须撤销,数据库回到此次事务之前的状态。一致性(Consiste
参考文章:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1、初步理解理解事务之前,先讲一个日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。**这两个步骤必须是要么都执行要么都不执行。**如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果
转载 2024-02-09 09:43:06
25阅读
[一]什么是redis事务 --->redis事务是一组命令的集合。 --->redis事务是保证一组命令,要么都执行,要么都不执行。但不支持一组命令中,其中一个或多个执行失败,不支持数据回滚。数据的一致性,由程序员控制。 --->redis事务还能保证一个事务内的命令依次执行,而不被其他命令插入。试想,客户端 A发
转载 2023-09-18 22:31:39
116阅读
最近翻看技术文章,发现一个叫做disruptor的高性能内存队列占据了头版头条,好奇其高性能的秘密,于是对该框架进行了一些简单的研究。disruptor并非新出,而是从2013年到现在经历了3个大版本的迭代。本文有如下几个部分:disruptor如何使用? disruptor高性能的秘密? 如何使用 核心概念: EventFactory:用于生成一个事件提供消费者消费 EventHandler:消
Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序地执行,事务在执行的过程中,不会被其他客户端发过来的请求所打断。 1,Multi、Exec、discard  从输入Multi开始,输入的命令都会依次进入命令队列中,但不会执行,直接输入Exec后,Redis会将之前队列中的命令依次执行。  组队的过程中可以通过discard来放弃组队。   事务的错误处理:
转载 2023-08-09 21:18:49
59阅读
1、reidis事务Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。 MULTI 开始一个事务, 然
1.概述Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。2.Redis事务命令命令命令及描述MULTI标记一个
转载 2024-06-11 09:30:44
38阅读
目录Redis事务简介事务过程开启事务命令入队取消事务执行事务锁机制悲观锁乐观锁WatchUnWatch应用场景Redis事务特性本文单一根据Redis事务来进行讲解,如有错误,请指教,谢谢!Redis事务简介Redis事务是一个单独的隔离操作,事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。Redis事务的主要作用就是串联多个命令防止别的命令
转载 2023-08-16 17:20:51
88阅读
一、redis事务的特性1.原子性这里的原子性跟mysql的原子性不一样。redis事务的原子性是说的:一次事务提交的多个命令,要么都不执行(watch发现某个key的值变了则不开始执行),要么所有的命令都执行(一旦开始执行事务事务中所有的命令都会执行,即使有命令报错了,后面的命令也会执行)报错不回滚!不回滚的原因:● Redis 命令只会因为错误的语法而失败,失败的命令是由编程错误造成的。而这
转载 2023-08-30 10:04:32
78阅读
[一]什么是redis事务--->redis事务是一组命令的集合。--->redis事务是保证一组命令,要么都执行,要么都不执行。但不支持一组命令中,其中一个或多个执行失败,不支持数据回滚。数据的一致性,由程序员控制。--->redis事务还能保证一个事务内的命令依次执行,而不被其他命令插入。试想,客户端 A发送几条命令到redis服务器,客户端B也送了一条命令也到red
转载 2023-06-29 11:44:12
144阅读
Redis事务定义: Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用就是串联多个命令防止别的命令插队。 就像羊肉串那样,不允许别的羊肉串插进来。 如何实现事务?我们需要通过下面三个命令:Multi、Exec、discard 从输入Multi命令开始,输入的命令都会依次进入命令队列
转载 2023-05-29 09:27:37
122阅读
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 EXEC 命令负责触发并执行事务中的所有命
转载 2023-08-04 18:51:18
85阅读
一、简介Redis 提供了事务的机制,由以下命令可以实现 Redis 事务:multi 开启事务 exec 提交事务 watch 监听一个key,在提交事务之前是否发生变化,发生变化就不会提交事务,没有变化才提交 discard 取消提交事务和 MySQL 的区别在于,当有两个客户端同时操作一条数据时,MySQL会提供行锁,另一个客户端在行锁生效时无法操作,但 Redis 没有行锁,Multi只保
n 概述 Redis中的事务就是一组命令的集合,被依次顺序的执行,当然你可以放弃事务的执 行,那么所有事务里面的命令都不会执行。 关于Redis事务有几点说明: 1:Redis事务仅仅是保证事务里的操作会被连续独占的执行,因为是单线程架构,在执行完 事务内所有指令前是不可能再去同时执行其他客户端的请求的 2:Redis事务没有隔离级别的概念,因为事务提交前任何指令都不会被实际执行,也就不存
转载 2023-08-15 13:18:44
82阅读
Redis 是一个高性能的内存数据库,支持多种数据结构的存储和操作。在实际应用中,我们常常需要对 Redis 进行复杂的操作,如同时执行多个命令、批量操作等。为此,Redis 提供了事务机制,用于保证多个命令的原子性操作。本文将介绍 Redis事务机制的原理、语法以及使用注意事项。Redis 事务机制的原理Redis事务机制是指在一个 Redis 连接中,可以向 Redis 服务器发送多个
转载 2023-07-28 21:15:54
85阅读
RabbitMQ RabbiMQ是AMQP(高级消息队列协议)的消息中间件的一种,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。Redis队列 redis队列是一个是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Valu
转载 2023-06-13 15:50:33
132阅读
  • 1
  • 2
  • 3
  • 4
  • 5