django使用锁
第一个:内存锁
1 | pip install django-cache-lock |
这么视图函数里面去使用,这是内存锁。
1 | from django_lock import lock |
这个name,就是锁的key,当需要同一份代码,锁上之后再去执行的情况下,就用同一个key。
这个timeout就是 锁的过时时间,当timeout等于0的时候就是永不过时。慎用。
第二个:redis分布式锁
在settings文件里面,需要配置一下redis的地址:
1 | pip install django-redis |
1 | CACHES = { |
在视图函数里面,这么去使用:
1 | from django.core.cache import cache |
这个k,就是锁的key,当需要同一份代码,锁上之后再去执行的情况下,就用同一个key。
这个timeout就是 锁的过时时间,当timeout等于0的时候就是永不过时。慎用。
内存锁适用于当项目只在一个服务器上跑的情况,redis的分布式锁可以同时锁住多个服务器上的程序。其原理就是基于redis数据库。在程序需要被锁的时候,就写入一个key,以此来达到锁的目的