概述
- 在一些项目中,有时候需要记录一些数字,比如需要知道每天微信推送了多少条模板消息或者其他的一些需求,或者一个功能:用户扫码当天达到20次即不再让用户扫码,或者秒杀活动中,这件商品只规定卖200件,如果我们使用数据库来作为查询,那么并发量特别大,db就会抗不住,我们就需要用中间件来削峰,并且配合redis, 当然,我们的电商项目肯定没有那么大,并发量也不会那么大,为了避免超卖,我们使用mysql中的乐观锁也可以,但是为了更快,我们就可以使用redis中的incr来提高效率
- 为什么可以使用redis中的incr功能来避免超卖那?因为redis中的Incrby是原子操作, 那怕是多线程的情况下 , 因为是原子操作 , 就只能有一个线程对Key进行修改 , 其他线程修改不了。所以这就避免了超卖的现象,
- incr在python中的使用:
import redis
redis_client = redis.Redis(host="localhost",port=6379,db=0)
redis_client.set('num', 1)
print(redis_client.get("num").decode())
# 使用incr来当中计数器
redis_client.incr("num", 1)
redis_client.incr("num", -2)
print(redis_client.get("num").decode())
# 如果执行incr增加时string不存在,那么会将这个string初始化为0,然后只能执行加操作
if redis_client.get("num1"):
print(redis_client.get("num1").decode())
redis_client.incr("num1", 1)
print(redis_client.get("num1").decode())
执行结果:
1
0
1
- 常见命令:decr 减 incrbyfloat 操作小数
最后
以上就是正直爆米花为你收集整理的python中redis incr的使用的全部内容,希望文章能够帮你解决python中redis incr的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复