Django操作redis

一、环境安装

基本环境:

Python环境:Python 3.8.16

Django环境:4.1

redis环境:参考搭建 https://www.cnblogs.com/yclh/p/14742336.html

并且已经添加了myApp的应用

 

安装redis的包:

pip install django-redis

 

二、配置文件

打开Django的配置文件,比如说setting.py,里面设置CACHES项

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},#连接池

            "SOCKET_CONNECT_TIMEOUT": 5,  # 连接redis超时时间,单位为秒

            "SOCKET_TIMEOUT": 5,  # redis读写操作超时时间,单位为秒

            # "PASSWORD": "123",

        }

    }

}

 

三、myApp里配置路径和编写view的方法

1、配置路径

 

 

 

2、编写view的方法

 

 

 

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
#1 使用cache(推荐使用这种方法)
from django.core.cache import cache


def index(request):
    cache.set("oneName", "张三")
    #timeout是有效期 单位是秒
    cache.set("TwoName", "lisi", timeout=5)
    print(cache.get("oneName"))
    print(cache.get("TwoName"))
    return HttpResponse('设置成功')



#2 直接使用conn对象(不推荐,但是也可以用)
from django_redis import get_redis_connection

def my(request):
    redis_conn = get_redis_connection("default")
    redis_conn.set("id", "hello")
    print(redis_conn.get("id"))

    # 查看目前已创建的连接数量
    connection_pool = redis_conn.connection_pool
    print(connection_pool._created_connections)
    return HttpResponse('设置成功')

 

四、验证效果

注:结合控制台的输出,验证从redis里取数据

1、进入redis客户端

127.0.0.1:6379> keys *

(empty list or set)

没有主键信息

2、浏览器访问http://127.0.0.1:8000/redis/test

127.0.0.1:6379> keys *

1) ":1:TwoName"

2) ":1:oneName"

有两个key了,过5秒钟在次查看

127.0.0.1:6379> keys *

1) ":1:oneName"

TwoName过期就从redis里自动删除了

3、浏览器访问http://127.0.0.1:8000/redis/other

127.0.0.1:6379> keys *

1) "id"

2) ":1:oneName"

说明view里写的两种方式都可以操作redis

posted @ 2023-02-16 18:56  万笑佛  阅读(216)  评论(0编辑  收藏  举报