摘要: Redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘。由于单线程所以Redis本身并没有锁的概念,多个客户端连接并不存在竞争关系,但是利用jedis等客户端对Redis进行并发访问时会出现问题。 比如:同时有多个子系统去set一个key。这个时候要注意什么呢? 举一个例子:多客户端同时并发写一个key,一个key的值是1,本来按顺序修改为2,3,4,最后是4;但是...阅读全文
posted @ 2019-02-21 23:30 robin·张 阅读(26) 评论(0) 编辑
摘要: 概述 为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性:在任意时刻,只有一个客户端能持有锁。 不会发生死锁:即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 容错性:只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 一致性:加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。 代码实现 首先我们要通过Maven...阅读全文
posted @ 2019-02-21 23:24 robin·张 阅读(26) 评论(0) 编辑