django from django_redis import get_redis_connection后如何为该redis添加分布式锁呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django from django_redis import get_redis_connection后如何为该redis添加分布式锁呢?相关的知识,希望对你有一定的参考价值。
django-redis文档中提到 可使用with cache.lock("somekey"): do_some_thing()来为cache加锁,但这对get_redis_connection有效吗?
参考技术A 有效的,不过如果使用redis,他内部是单线程实现,大部分操作不加锁,也不会有并发问题,是安全的。AWS Elastic Beanstalk EC2 与 Redis - 无法连接 - Django_Redis
【中文标题】AWS Elastic Beanstalk EC2 与 Redis - 无法连接 - Django_Redis【英文标题】:AWS Elastic Beanstalk EC2 With Redis - Cannot Connect - Django_Redis 【发布时间】:2018-09-07 15:29:47 【问题描述】:您好,我正在尝试连接我的 Django 应用程序以使用 Redis ElastiCache,但无法使用 AWS 连接它。该应用程序使用 Elastic Beanstalk 发布到 EC2 实例,并且当我不尝试连接到我的 Redis 缓存时它运行完美。
从这里的帖子 (Setting up ElastiCache Redis with Elastic BeanStalk + Django) 我创建了 ElastiCache 以不使用集群,并且我已将 EC2 实例和 Redis 缓存设置为使用相同的安全组。
这是我的缓存在 settings.py 中的配置方式。
CACHES =
'default':
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://my-cache.kjshd.0001.use2.cache.amazonaws.com:6379/',
'OPTIONS':
'CLIENT_CLASS': 'django_redis.client.DefaultClient'
我错过了什么?我的缓存或 AWS 中的某处是否需要更改其他设置才能打开通信?这个配置看起来好吗?我以前在 Azure 中使用 Redis,并且此配置有效,但现在需要迁移到 AWS。有没有办法测试我的 EC2 实例是否可以连接到 Redis?我可以通过 SSH 连接到服务器,但我不确定连接后我会做什么。
感谢您的帮助。
【问题讨论】:
【参考方案1】:设置安全组后,我发现需要更改安全组的入站设置才能连接到我的 ElastiCache Redis 节点。
在此处找到文档。
https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/GettingStarted.AuthorizeAccess.html#GettingStarted.AuthorizeAccess.VPC
【讨论】:
以上是关于django from django_redis import get_redis_connection后如何为该redis添加分布式锁呢?的主要内容,如果未能解决你的问题,请参考以下文章