Django中Redis缓存的完整指南

Redis是一个开源(BSD许可)的内存中的数据结构存储系统,可用作数据库、缓存和消息中间件。它支持多种数据结构类型,如字符串、散列、列表、集合、有序集合、位图、HyperLogLogs和地理空间索引。Redis内置了复制、Lua脚本、LRU驱动事件、事务和不同级别的磁盘持久化,并通过Redis哨兵和自动分区提供高可用性。

图片[1]-Django中Redis缓存的完整指南-山海云端论坛

一、Redis使用场景

  1. 登录会话存储: 在Redis中存储,数据不会丢失。
  2. 排行榜或计数器: 实时排行或计数可采用Redis实现。
  3. 消息队列: 如celery使用Redis作为中间人。
  4. 当前在线人数: 实时数据,不需要存储到数据库。
  5. 常用数据缓存: 将不经常变化的数据存储到Redis中,如论坛首页等。
  6. 前100文章或评论缓存: 缓存经常访问的数据。
  7. 好友关系: 微博的好友关系可使用Redis实现。
  8. 发布和订阅功能: 适用于聊天软件。

二、安装Redis

yum install -y redis systemctl start redis # 配置Redis vi /etc/redis.conf # 在配置文件中设置监听地址和密码 bind 127.0.0.1 requirepass 123456 # 登录Redis redis-cli -h 127.0.0.1 -p 6379 -a

三、安装django-redis

pip install django-redis

四、Django配置Redis

在Django的settings.py中配置CACHES:

CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379/1', 'TIMEOUT': 300, 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': '' } } }

五、Django操作Redis的两种方式

  1. 使用django.core.cache.cache

from django.core.cache import cache from django.http import HttpResponse def redis_test(request): cache.set("feiutech", "feiutech.com", 20) if cache.get("feiutech"): return HttpResponse(cache.get("feiutech")) else: return HttpResponse('缓存不存在')

  1. 通过get_redis_connection()

from django_redis import get_redis_connection from django.http import HttpResponse def redis_test(request): conn = get_redis_connection('default') conn.set("feiutech", "feiutech.com") if conn.get("feiutech"): return HttpResponse(conn.get("feiutech")) else: return HttpResponse('缓存不存在')

六、Redis常用命令-Django操作

操作含义结果
cache.set('key', 'value', 20)创建键值缓存(超时时间20秒)True
cache.get("key")获取键值'value'
cache.ttl('key')过期时间(0表示已过期,None表示未设置过期时间)
cache.delete('key')删除键值(1:成功,0:失败)1
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容