Redis笔记总结

四、事务

  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的交互次数来缩短往返时延。

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Redis和MySQL数据一致中出现的几种情况

1\.MySQL持久化数据,Redis只读数据redis在启动之后,从数据库加载数据。读请求:不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis

Redis事务,持久化,哨兵机制

1Redis事务基本事务指令Redis提供了一定的事务支持,可以保证一组操作原子执行不被打断,但是如果执行中出现错误,事务不能回滚,Redis未提供回滚支持。multi 开启事务exec 执行事务127.0.0.1:6379multiOK127.0.0.

MySQL 事务(4)

什么是事务?数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。这里有两个关键点,第一,它是数据库最小的工作单元,是不可以再分的。第二,它可能包含了一个或一系列DML语句,包括inser

Spring事务(二):Spring事务的特点

事务特性实现事务必须满足以下四大特性:Atomicity(原子性):构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行。Consistency(一致性):数据库在事务执行前后,完整性没有被破坏。(转账前后,钱的总数不变)Durability(持久性):事务执行成功后必须全部写入磁盘。

MySql学习17

一.数据库事务的四大特性(ACID)如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:原子性(Atomicity):原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操