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