美文网首页django
Django-34 Redis-3 事务

Django-34 Redis-3 事务

作者: JuliusL | 来源:发表于2021-12-18 14:17 被阅读0次

事务命令

1、multi
开启事务,类似mysql begin
2、命令1
3、命令2
4-1、exec
提交到数据库执行 mysql commit
4-2、discard
取消事务 mysql 'rollback'

pipeline 流水线

批量执行redis命令,减少通信IO
原理:效仿redis事务,客户端将多个命令打包,一次通信发给redis,可明显降低redis服务的请求数
注意:
1,此为客户端技术
2,如果一组命令中,一个命令需要上一个命令的执行结果才可以执行,则无法使用该技术

import redis
# 创建连接池并连接到redis
pool = redis.ConnectionPool(host='127.0.0.1',db=0,port=6379)
r = redis.Redis(connection_pool=pool)

pipe = r.pipeline()
pipe.set('fans',50)
pipe.incr('fans')
pipe.incrby('fans',100)
pipe.execute()

python 操作redis事务

Python操作事务需要依赖流水线技术

with r.pipeline(transaction=true) as pipe
  pipe.multi()
  pipe.incr('books')
  pipe.incr('books')
  values = pipe.execute()

watch-乐观锁

事务过程中,可对指定key进行监听,命令提交时,若被监听key对应的值未被修改,事务方可提交成功,否则失败
解决资源竞争的一种方式

> watch book
OK
> multi
OK
> incr books
QUEUED
> exec #事务执行失败
(nil)

watch之后,再开一个终端进入redis
> incr books #修改book值
(integer) 1

相关文章

  • Django-34 Redis-3 事务

    事务命令 1、multi开启事务,类似mysql begin2、命令13、命令24-1、exec提交到数据库执行 ...

  • redis-3

    redis-3 redis高可用 redis主从同步 全量同步 步骤: 主服务器开启BG SAVE写RDB文件 主...

  • Redis-3 Sentinel(哨兵)

    官网: https://redis.io/topics/sentinel参考: http://download.r...

  • Redis-3大常见问题

    缓存常见问题 by shihang.mai 雪崩 大量的key同时失效,高并发请求导致压力全部到库。叫缓存雪崩。 ...

  • java事务

    1、java事务介绍 2、JDBC事务 3、JTA事务 1、java事务介绍 java事务分类:JDBC事务、...

  • Java-分布式框架-redis-3

    一、Redis哨兵集群弊端 redis3.0之前比较可靠的集群就是哨兵集群,主从节点,主节点拥有写与读的权限,从节...

  • 事务、MySQL与Python交互、Python 中操作 MyS

    1、事务 事务操作分两种:自动事务(默认)、手动事务 手动事务的操作流程 开启事务:start transacti...

  • 数据库事务书目录

    数据库事务 事务概念 本地事务 全局事务 全局事务的定义 J2EE中全局事务的实现 全局事务的优缺点 基于消息的分...

  • MySQL事务

    MySQL-innodb-事务 事务的特性 事务的生命周期 失败的事务: 事务的控制语句 面试题 事务日志-red...

  • mysql事务隔离机制及其隔离级别、实现原理分析

    目录 事务特性ACID属性 并发事务带来的问题 事务隔离级别 事务实现原理 事务特性ACID属性 事务特性指的就是...

网友评论

    本文标题:Django-34 Redis-3 事务

    本文链接:https://www.haomeiwen.com/subject/whhgfrtx.html