django中使用redis

django中使用redis

方式一:通用方式

  • pool.py
import redis
POOL = redis.ConnectionPool(max_connections=10, decode_responses=True)
  • 在哪里用,导入用即可
from utils.pool import POOL
import redis
class RedisView(ViewSet):
    def list(self, request):
        conn = redis.Redis(connection_pool=POOL)
        conn.incrby('count')
        count = conn.get('count')
        return APIResponse(msg='您是第%s个访问的' % count)

方式二:django-redis

  • 安装
pip install django-redis
  • 配置文件配置 seetings.py
from django_redis import get_redis_connection
class RedisView(ViewSet):
    def list(self, request):
        conn = get_redis_connection() # 从池中获取一个链接
        conn.incrby('count')
        count = conn.get('count')
        return APIResponse(msg='您是第%s个访问的' % count)
  • 调用
from django_redis import get_redis_connection
class RedisView(ViewSet):
    def list(self, request):
        conn = get_redis_connection() # 从池中获取一个链接
        conn.incrby('count')
        count = conn.get('count')
        return APIResponse(msg='您是第%s个访问的' % count)

方式三:django的缓存

django内置的,可以直接操作缓存;但只要项目一重启,数据就没了。

把缓存数据,放到 redis中 ,redis可以持久化,项目停止,但redis还运行,数据就不会丢。

  • 配置文件配置 seetings.py
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}
            # "PASSWORD": "123",
        }
    }
}
  • 以后再django中,可以直接使用
cache.set()  # 设置缓存
cache.get()  # 获取缓存
  • 优势
    • redis 分数据类型, 只能设置5种数据类型
    • django的缓存来讲 ,不限制类型,可以放python的任意类型
posted @ 2024-05-15 19:46  蓝幻ﹺ  阅读(103)  评论(0编辑  收藏  举报