采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请老师指点下 ( mysql 要做一些方并发处理吧? 加锁 )
老师本课抛出的问题,正好在这回答一下吧~~
多线程或多进程情况下,是有可能在zrangebyscore()步骤的时候拿到相同的任务,但是在zrem步骤的时候,redis里的zrem方法会决定唯一的抢占获取者,它的返回值决定了当前实例有没有获取到。
但是没获取到,又拿到任务的实例就浪费了一次,可以使用 Lua脚本来优化延时队列的逻辑,将轮询和争抢操作原子化,这样就可以避免竞争浪费。
您好。因为redis是单进程单线程,多个pHP进程去redis拿数据, 不会出现重复的内容。
老师,我有个疑问,Redis虽然是单进程单线程,但是如果进程A先执行了zrangebyscore方法后,在进程A执行zrem方法前进程B就执行了zrangebyscore方法,那么这个时候其实进程A和进程B中是有可能出现重复数据的呀,为什么多个PHP进程去Redis里拿数据不会出现重复的内容呢
登录后可查看更多问答,登录/注册
一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目
1.8k 19
1.4k 19
4.7k 16
1.6k 16
1.5k 16