Redis如何处理高并发下对一个数据的访问。

林清醉酒
  • 6

最近在看Redis的时候遇到一个问题,日常的使用当中似乎并没有遇到redis多个线程同时访问一个数据的时候导致阻塞或长时间未响应的情况,但目前并没有找到相关的一些解释,只是说将数据放置到内存中,读取的速度会加快。
但我觉得这个应该不足以解释redis当中它是如何处理这样的场景的

回复
阅读 979
5 个回答

因为一般的数据都不大,内存访问的效率很快,所以你是感觉不出来。
redis本身的读都是单线程的,直接读取内存,如果你把一个key设置的很大,读取的时候会阻塞一下,还是有明显的感觉的,所以在使用的时候要特别注意大key。一般redis操作10ms都算慢的了。

Church.
  • 2
新手上路,请多包涵

鉴于你的这个情况,如果不是楼上所说的大key的问题,那么就是你确实是有无敌大量的读请求,那我的建议是,酌情设立二级缓存,简单一点直接使用少量虚拟机内存,或者使用ecache进行尝试,对redis读请求进行限流,不过还是建议加redis机器😀

龍貓
  • 2
新手上路,请多包涵
所以Redis集群他就来了
Jason
  • 1
新手上路,请多包涵

1.增加本地缓存,可能会失去一部分一致性
2.一个数据,可以拆成多个备份,比如:key1,key2,key3,但是要保证每次也是赛多份,线上一般都是集群的,会hash到多个分片,可以保证高并发。

壹壹贰贰
  • -3
新手上路,请多包涵

世上无难事只要肯攀登

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏