Django项目中使用Redis
Django项目中使用Redis
1 redis
Redis 是一个 key-value 存储系统,常用于缓存的存储。django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件.
1.1 为何要用 django-redis ?
- 持续更新
- 本地化的 redis-py URL 符号连接字符串
- 可扩展客户端
- 可扩展解析器
- 可扩展序列器
- 默认客户端主/从支持
- 完善的测试
- 已在一些项目的生产环境中作为 cache 和 session 使用
- 支持永不超时设置
- 原生进入 redis 客户端/连接池支持
- 高可配置 ( 例如仿真缓存的异常行为 )
- 默认支持 unix 套接字
- 支持 Python 2.7, 3.4, 3.5 以及 3.6
2 redis 的使用
2.1 安装
安装 django-redis 最简单的方法就是用 pip :
pip install django-redis
2.2 作为 cache backend 使用配置
为了使用 django-redis , 你应该将你的 django cache setting 改成这样:
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
为了更好的互操作性并使连接字符串更加 “标准”, 从 3.8.0 开始 django-redis 使用 redis-py native url notation 作为连接字符串.
redis://[:password]@localhost:6379/0
rediss://[:password]@localhost:6379/0
unix://[:password]@/path/to/socket.sock?db=0
支持三种 URL scheme :
- redis://: 普通的 TCP 套接字连接
- rediss://: SSL 包裹的 TCP 套接字连接
- unix://: Unix 域套接字连接
2.3 作为 session backend 使用配置
Django 默认可以使用任何 cache backend 作为 session backend, 将 django-redis 作为 session 储存后端不用安装任何额外的 backend
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
2.4 使用
好了,现在连接和配置都已经完成了,那么在项目中该如何使用呢?接下来看下面这段例子吧。
from django.conf import settings
from django.core.cache import cache
#read cache user id
def read_from_cache(self, user_name):
key = 'user_id_of_'+user_name
value = cache.get(key)
if value == None:
data = None
else:
data = json.loads(value)
return data
#write cache user id
def write_to_cache(self, user_name):
key = 'user_id_of_'+user_name
cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)
通过上面的这两个方法就可以实现对redis的读取操作了,只需要将需要的字段当参数传入到方法中就好了。
感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。
博主网址:http://www.cnblogs.com/ChinacloudTech/
独立博客:http://futuretechx.com
如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:1145356699@qq.com。
本博客为博主原创,欢迎转载,但必须注明博客来源。
更多关于游戏开发的内容也可关注微信公众号:微浪游戏
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!