Redis笔记总结

Stella981
• 阅读 662

四、事务

  Redis中的事务是一组命令的集合。事务同命令一样都是Redis的最小执行单位,一个事务的命令要么全部执行,要么全部不执行。

  事务的原理是先将一个事务的命令发给Redis,然后再让Redis依次执行这些命令。

  需要注意的是Redis并没有提过像关系型数据库那样的回滚功能!不过由于Redis不支持回滚,这也使得Redis在事务上的开发更简洁快速。

  语法:

    MULTI      //这里是通知Redis将要进入事务操作,并将语句存储在事务队列里

      执行语句

    EXEC      //真正的开始执行事务语句

  4.1 WATCH命令

WATCH命令可以监控一个或多个键,一旦其中有一个 键被修改或删除,其后的事务就不会执行。监控一直持续到EXEC命令。

4.2 生存时间

在Redis中可以使用EXPIRE命令设置一个键的生存时间,到时间后Redis会自动删除它。

    语法:EXPIRE key seconds    //seconds表示键的生存时间,单位是秒。命令返回1表示设置成功,返回0则表示键不存在或设置失败。

       TTL key          //以秒为单位返回键的剩余时间

    若想取消键的生存时间可以使用PERSIST key 或者 使用SET/GETSET命令为键重新赋值也会取消键的生存时间。

    当重新调用EXPIRE命令时会重新设置键的生存时间。

    EXPIRE key 1 = PEXPIRE 1000  //这两个等价,PEXPIERE以毫秒为单位

    注意:若某一有生存时间的键被WATCH命令监视,当该键时间到期自动删除时并不会被WATCH认为该键被改变。

4.3 SORT命令

SORT命令可以对列表类型、集合类型和有序集合类型键进行排序。

    SORT key      //从小到大排序

    SORT key DESC   //从大到小排序

    分页排序:

      SORT key DESC LIMIT offset count  //表示跳过offset个元素并获取之后的count个元素

4.5 管道

客户端和Redis使用TCP协议连接。不管是客户端向Redis发送请求还是Redis向客户端响应信息,都是通过网络传输进行的,这两个部分的总耗时称为往返时延。

    通过管道客户端一次性将信息发出,然后Redis一次性将信息结果返回,管道通过减少客户端与Redis的交互次数来缩短往返时延。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Redis和MySQL数据一致中出现的几种情况
1\.MySQL持久化数据,Redis只读数据redis在启动之后,从数据库加载数据。读请求:不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis
Stella981 Stella981
3年前
Redis事务,持久化,哨兵机制
1Redis事务基本事务指令Redis提供了一定的事务支持,可以保证一组操作原子执行不被打断,但是如果执行中出现错误,事务不能回滚,Redis未提供回滚支持。multi 开启事务exec 执行事务127.0.0.1:6379multiOK127.0.0.
Wesley13 Wesley13
3年前
MySQL 事务(4)
什么是事务?数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。这里有两个关键点,第一,它是数据库最小的工作单元,是不可以再分的。第二,它可能包含了一个或一系列DML语句,包括inser
Easter79 Easter79
3年前
Spring事务(二):Spring事务的特点
事务特性实现事务必须满足以下四大特性:Atomicity(原子性):构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。Consistency(一致性):数据库在事务执行前后,完整性没有被破坏。(转账前后,钱的总数不变)Durability(持久性):事务执行成功后必须全部写入磁盘。
Wesley13 Wesley13
3年前
mysql 事物四大特性和事物的四个隔离
1、事物四大特性(ACID)1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。2.一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态。3.隔离性
Wesley13 Wesley13
3年前
MySql学习17
一.数据库事务的四大特性(ACID)如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操
Wesley13 Wesley13
3年前
MySQL transaction
MySQLtransaction(数据库的事务)数据库事务(DatabaseTransaction),是指作为单个逻辑工作单元执行的一系列操作。要么完全执行,要么完全地不执行。ACID事务必须具备ACID四个特性原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。一致性(Consistency)
Stella981 Stella981
3年前
Redis高级特性
redis的事务(transaction)转载:https://blog.csdn.net/fmwind/article/details/78065236redis中的事务是一组命令的集合。事务同命令一样都是redis的最小执行单元。一组事务中的命令要么都执行,要么都不执行。(例如:转账)原理:先
Stella981 Stella981
3年前
Redis 事务
Redis事务一、理论1.是什么:    可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞。2.作用:    一个队列中,一次性、顺序性、排他性地执行一系列命令3.常用命令:    通过MUL
3A网络 3A网络
2年前
Lua 脚本在 Redis 事务中的应用实践
Lua脚本在Redis事务中的应用实践使用过Redis事务的应该清楚,Redis事务实现是通过打包多条命令,单独的隔离操作,事务中的所有命令都会按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。事务中的命令要