我正在构建一个多线程的排队服务。我需要确保Redis(我们的数据后端)具有针对列表或集类型的线程安全弹出函数。这个想法是任意数量的线程可以调用Redis lpop
或spop
并且没有任何冲突。我不确定如何测试它,如果pop函数是线程安全的,它在Redis页面上没有明确说明。
答案 0 :(得分:13)
Redis是一个单线程服务器。它不是为了受益而设计的 多个CPU核心。人们应该推出几款Redis 如果需要,可以在多个核心上扩展的实例。这不是真的 公平地将一个Redis实例与多线程数据进行比较 存储。
所以当每个命令在一个线程中排队时你应该没问题,因为永远不会有两个命令并行执行