高并发操作redis是否需要加锁?
会不会出现覆盖写的情况?
在Redis端对一个key的操作是原子性的。但是不保证多并发操作同一个key的覆盖问题。如果你是做高并发的秒杀类业务,需要使用lua脚本原子性的操作key。
也可以使用list来模拟队列实现扣库存。
看自己业务了,一般情况下是要加锁的,至于覆盖写你指的是什么一种情况?
高并发是不是可以用一个队列来做?
redis本身就是单线程,不需要加锁。 一般用于和mysql做交互时才把redis当做锁。
看你的业务场景。hincrby 和setnx 就够用。
15 回答8.4k 阅读
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答2.5k 阅读✓ 已解决
1 回答3.1k 阅读
1 回答4.8k 阅读
6 回答3.5k 阅读✓ 已解决
在Redis端对一个key的操作是原子性的。
但是不保证多并发操作同一个key的覆盖问题。
如果你是做高并发的秒杀类业务,需要使用lua脚本原子性的操作key。
也可以使用list来模拟队列实现扣库存。