开发者社区> 问答> 正文

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

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

展开
收起
不语奈何 2020-01-09 19:47:06 747 0
1 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

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

         由于客户端连接混乱造成。对此有2种解决方法:

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

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

    2020-01-09 19:47:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载