redis分布式锁与事务
分布式锁是可以跨越多个实例,多个进程的锁。
一个tomcat实例是一个JVM进程,单体锁(synchronized、ReentrantLock)是JVM层面的锁,只能控制单个实例上的并发访问安全,多实例下依然存在数据一致性问题。
分布式锁:所有实例的所有线程都去获取同一把锁,但只有一个线程可以成功的获得锁,其他没有获得锁的线程必须全部等待,直到持有锁的线程释放锁。
redis 数据结构是键值对的形式,
redis的key必须是string
value 有5种数据类型,分别是:String、List、Set、Zset、Hash
dbsize: 查看redis键的数量
exists key: 查看某个key是否存在
set key v:设置一个key
get key:查询某个key
del key:删除某个key
setnx key:key不存在,才能设置成功。设置分布式锁用setnx
keys *:查看所有的key
expire key 5:设置key的过期时间是5秒
ttl key:如果是-1,表示没有过期时间
mset :设置多个键值对
mget:获取多个键值
incr incr-key:自增key
decr incr-key:自减key
strlen key:返回key的value的长度
hmset:设置hash值
redis持久化:
设置hash类型的值
redis返回key的类型, 下图表示hash类型,也就是键值对的类型
redis list类型插入值
给set添加元素,显示元素
sinter:返回两个集合的交集
sunion:并集
redis开启事务和提交事务
AOF:append only file
解锁
加锁
解锁
redission插件,分布式锁的实现,
看门狗续期
redis释放锁命令
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)