引言
Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。Redis事务的实现需要用到 MULTI 和 EXEC
2024年09月17日
引言
Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。Redis事务的实现需要用到 MULTI 和 EXEC
2024年09月17日
redis的watch multi exec 方法实现秒杀抢购。优点:使用了乐观锁没有锁的等待,比队列方式减少了大量的内存消耗。 watch 监视一个或多个key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断。
2024年09月17日
严格意义来讲,redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的。
redis中的事务定义
Redis中的事务(transaction)是一组命令的集合。
事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。 事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。
2024年09月17日
一般的 事务简单来说就是 一系列的操作保证原子性,成功都成功~失败都失败。
但是!但是!但是! redis 的事务在执行中出错时,错的将会被忽略,队列之后的指令依然可以执行。一旦出现这种情况 需要手动回滚。
redis 的事务仅仅保证了所有的操作都会严格的 按照原子操作来执行,不保证所有的都是成功的,这需要开发者自己来约束。
2024年09月17日
WATCH命令用于在Redis交易处理中提供一种乐观锁。WATCH命令可以监控key中存储值的变化情况。当值产生变化时,EXEC命令会执行失败。使用UNWATCH命令可以释放对key的监控。当EXEC命令执行时,所有的监听都会被释放。
2024年08月01日
基于redis的分布式锁跟基于zk的分布式锁该怎么选?
分布式锁在日常开发过程中用的还是比较多的,尤其是分布式环境下,只要涉及到了资源的争抢,不管是不是高并发都得上分布式锁。因为要保证数据的安全,要保证不能超卖,保证数据的一致性等等,这些场景处处离不开分布式锁。
2024年08月01日
$redis = new Redis();
connect, open 链接redis服务
参数
host: string,服务地址
port: int,端口号
timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间)
注: 在redis.conf中也有时间,默认为300