redis 标签

利用redis实现分布式锁

  |   0 评论   |   0 浏览

利用redis来实现分布式锁。一般就用setnx和getset两个命令。

  • NXNot eXists的缩写,如SETNX命令就应该理解为:SET if Not eXists.
  • getset是同步的

java之jedis实现
expireMsecs 锁持有超时,防止线程在入锁以后,无限的执行下去,让锁无法释放
timeoutMsecs 锁等待超时,防止线程饥饿,永远没有入锁执行代码的机会

redis为什么要设计成单线程

  |   0 评论   |   0 浏览

我觉得最重要的一点是,redis作为一个内存数据库,内存操作是很快的。网络io是瓶颈,如果用多线程,还要引起线程切换,线程切换的开销是很大的,切换线程之后要保留现场,要做很多预处理。所以用单线程反而能起到更好的作用。