File tree Expand file tree Collapse file tree 1 file changed +40
-8
lines changed
Expand file tree Collapse file tree 1 file changed +40
-8
lines changed Original file line number Diff line number Diff line change 4040<!-- /code_chunk_output -->
4141
4242
43-
4443### 1. 简单介绍一下 Redis 呗!
4544
4645简单来说 ** Redis 就是一个使用 C 语言开发的数据库** ,不过与传统数据库不同的是 ** Redis 的数据是存在内存中的** ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。
@@ -628,21 +627,54 @@ AOF 重写是一个有歧义的名字,该功能是通过读取数据库中的
628627
629628### 15. Redis 事务
630629
631- Redis 可以通过 ** MULTI, EXEC, DISCARD 和 WATCH** 等命令来实现事务(transaction)功能。
630+ Redis 可以通过 ** ` MULTI ` , ` EXEC ` , ` DISCARD ` 和 ` WATCH ` ** 等命令来实现事务(transaction)功能。
632631
633632``` bash
634633> MULTI
635634OK
636- > INCR foo
635+ > SET USER " Guide哥 "
637636QUEUED
638- > INCR bar
637+ > GET USER
639638QUEUED
640639> EXEC
641- 1) (integer) 1
642- 2) (integer) 1
640+ 1) OK
641+ 2) " Guide哥"
642+ ```
643+
644+ 使用 [ ` MULTI ` ] ( https://redis.io/commands/multi ) 命令后可以输入多个命令。Redis 不会立即执行这些命令,而是将它们放到队列,当调用了[ ` EXEC ` ] ( https://redis.io/commands/exec ) 命令将执行所有命令。
645+
646+ 这个过程是这样的:
647+
648+ 1 . 开始事务(` MULTI ` )。
649+ 2 . 命令入队(批量操作 Redis 的命令,先进先出(FIFO)的顺序执行)。
650+ 3 . 执行事务(` EXEC ` )。
651+
652+ 你也可以通过 [ ` DISCARD ` ] ( https://redis.io/commands/discard ) 命令取消一个事务,它会清空事务队列中保存的所有命令。
653+
654+ ``` bash
655+ > MULTI
656+ OK
657+ > SET USER " Guide哥"
658+ QUEUED
659+ > GET USER
660+ QUEUED
661+ > DISCARD
662+ OK
643663```
644664
645- 使用 [ MULTI] ( https://redis.io/commands/multi ) 命令后可以输入多个命令。Redis 不会立即执行这些命令,而是将它们放到队列,当调用了[ EXEC] ( https://redis.io/commands/exec ) 命令将执行所有命令。
665+ [ ` WATCH ` ] ( https://redis.io/commands/watch ) 命令用于监听指定的键,当调用 EXEC 命令执行事务时,如果一个被 ` WATCH ` 命令监视的键被修改的话,整个事务都不会执行,直接返回失败。
666+
667+ ``` bash
668+ > WATCH USER
669+ OK
670+ > MULTI
671+ > SET USER " Guide哥"
672+ OK
673+ > GET USER
674+ Guide哥
675+ > EXEC
676+ ERR EXEC without MULTI
677+ ```
646678
647679Redis 官网相关介绍 [ https://redis.io/topics/transactions ] ( https://redis.io/topics/transactions ) 如下:
648680
@@ -796,4 +828,4 @@ Cache Aside Pattern 中遇到写请求是这样的:更新 DB,然后直接删
796828
797829** Java 工程师必备学习资源:** 一些 Java 工程师常用学习资源公众号后台回复关键字 ** “1”** 即可免费无套路获取。
798830
799- ![ 我的公众号] ( https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/167598cd2e17b8ec.png )
831+ ![ 我的公众号] ( https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-6/167598cd2e17b8ec.png )
You can’t perform that action at this time.
0 commit comments