为了账号安全,请及时绑定邮箱和手机立即绑定

Redis的并发竞争问题如何解决?

Redis的并发竞争问题如何解决?

慕田峪0738999 2018-04-26 17:08:27
查看完整描述

8 回答

?
慕前端25690

TA贡献1条经验 获得超1个赞

Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由于客户端连接混乱造成。对此有2种解决方法:

 1.客户端角度,为保证每个客户端间正常有序与Redis进行通信,对连接进行池化,同时对客户端读写Redis操作采用内部锁synchronized。   2.服务器角度,利用setnx实现锁。

 注:对于第一种,需要应用程序自己处理资源的同步,可以使用的方法比较通俗,可以使用synchronized也可以使用lock;第二种需要用到Redis的setnx命令,但是需要注意一些问题。



查看完整回答
1 反对 回复 2018-04-26
  • 8 回答
  • 0 关注
  • 2409 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信