Redis

redis事务

Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis的最小执行单元,一个事务中的命令要么都执行,要么都不执行。

使用MUUTI开始一个事务,然后把所有要在同一个事务中执行的命令都发送给 Redis后,我们使用EXEC命令告诉Redis将等待执行的事务队列中的所有命令(开始事务后,每一台输入命令都返回QUEUED的命令)按照发送顺序依次执行。命令在执行EXEC后才依次执行。
Redis保证一个事务中的所有命令要么都执行要么都不执行。如果在发送EXEC命令前客户端短线,则Redis会清空事务队列,事务中的命令都不会执行。
Redis事务保证在一个事务内的命令依次执行的过程中而不被其他命令插入

Http如何保证数据可靠及HTTP2的简单介绍

HTTP 的 Keep-Alive模式

当使用普通模式时,即非KeepAlive模式时,每个请求/应答都需要新建一个连接,数据传输完成后立即断开连接;当使用Keep-Alive模式时,这个模式时客户端和服务端的连接是在数据传输完成后是不中断的,当后续又有请求时,可以复用连接

如何判断请求所得到的响应数据已经接受完成 - 使用消息首部字段Conent-Length
表示实体内容长度,客户端可以根据这个值来判断数据是否接受完成 - 使用消息首部字段Transfer-Encoding
在传输一些动态页面时,服务器是与现实不知道内容大小,这时就可以使用Transfer-Encoding: chunk模式来传输数据。即如果要一边生产数据,一边发送数据给请求端,就要使用Transfer-Encoding:chunked这样的方式来代替Conteng-Length。chunk编码将数据分为一块一块的发生。Chunked编码将使用若干个Chunk串连而成,由一个标明长度为0的chunk标识结束。