Django使用redis实现缓存

1. 安装

pip3 install django-redis

2. 配置(settings.py文件)

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",  # 引擎     "TIMEOUT": 300, # 缓存超时时间(默认300,None表示永不过期,0表示立即过期
        "LOCATION": "redis://127.0.0.1:6379/1",  # 1表是代表那个库
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PASSWORD": "mysecret",  # 密码
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}  # 连接池最大连接数
        }
    }
}

 注意: 在settings.py配置完后执行  python manage.py createcachetable

3. 缓存种类

  3.1views视图缓存

# 视图缓存
from django.shortcuts import render
from django.views.decorators.cache import cache_page
from cache.models import Foo

# 在需要缓存的视图上添加装饰器, 参数是设置timeout 超时时间, 单位是秒,
@cache_page(60)
def index(request):
    bar = Foo.objects.all()
    return render(request, ‘cache/index.html‘, {‘bar‘: bar})

  3.2模板缓存

步骤I. 引入TemplateTag
        {% load cache %}
步骤II. 使用缓存
        {% cache 5000 缓存key %}
            缓存内容
        {% endcache %}
{% load cache %}
{% cache 500 ‘cache_name‘ %}
    <div>container</div>
{% endcache %}

  3.3站点缓存(缓存整个网站)

MIDDLEWARE = [
    # 站点缓存 , 注意必须在第一个位置
    ‘django.middleware.cache.UpdateCacheMiddleware‘,
    # ...
    # 站点缓存, 注意必须在最后一个位置
    ‘django.middleware.cache.FetchFromCacheMiddleware‘,
]

具体操作

配置:

    # 缓存配置
    CACHES = {
            "default": {
                # 引擎
                "BACKEND": "django_redis.cache.RedisCache",
                # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
                ‘TIMEOUT‘: 300,
                "LOCATION": "redis://127.0.0.1:6379/1",
                "OPTIONS": {
                    "CLIENT_CLASS": "django_redis.client.DefaultClient",
                    # "PASSWORD": "mysecret"
                }
            }
        }

路由:

    # 缓存测试
    url(r‘^cache1/$‘,  views.cache1,name="cache1"),
    url(r‘^cache2/$‘,  views.cache2,name="cache2"),

视图:

    import datetime
    from django.views.decorators.cache import cache_page
    from django.core.cache import cache

    # 缓存整个视图函数
    @cache_page(10)
    def cache1(request):

        t =  datetime.datetime.now()
        return HttpResponse(t)

    # 在视图函数中缓存一部分内容
    def cache2(request):

        # 判断缓存是否存在数据
        a = cache.get(‘time‘,None)
        if a:
            print(‘缓存中存在数据‘)
            print(a)
        else:
            # 从模型中获取的数据
            a =  datetime.datetime.now()
            cache.set(‘time‘,a,10)
            print(‘缓存中,不存在数据,查询并缓存‘)
            print(a)

        # 不需要缓存的数据
        t =  datetime.datetime.now()
        print(t)

        return HttpResponse(t)

原文地址:https://www.cnblogs.com/zhuangshenhao/p/12120940.html

时间: 2024-10-29 17:24:19

Django使用redis实现缓存的相关文章

学习猿地 python教程 django教程9 Django使用redis实现缓存

# Django使用redis实现缓存 ### 环境搭建安装 * 1,安装redis服务 ``` sudo apt-get install redis ``` * 2,安装django组件 ``` sudo pip3 install django-redis ``` ### Django项目配置 ```py settings.py CACHES = { "default": { # 引擎 "BACKEND": "django_redis.cache.Red

Django使用Redis进行缓存详细最全流程

背景和意义服务器数据非经常更新.若每次都从硬盘读取一次,浪费服务器资源.拖慢响应速度.而且数据更新频率较高,服务器负担比较大.若保存到数据库,还需要额外建立一张对应的表存储数据.在Django中建立表通常做法是建立一个模型.看似简单,问题调试麻烦.开发时长久.为了进行服务器的加速,使用Redis进行缓存. 配置步骤如下1,服务器端安装redis(1)在Windows安装redis,方便测试 Redis不支持Windows!在它官网写得很清楚.但是开发环境一般是Windows系统.为了方便开发和调

Django分别使用Memcached和Redis作为缓存的配置(Linux环境)

1 使用memcached 1.1 安装memcached 安装(Linux) sudo apt install memcached 启动 #方式一: service memcached start # 方式二: /usr/bin/memcached -u memcache -m 1024 -p 11222 -l 0.0.0.0 -d start -d:这个参数是让memcached在后台运行 -m:指定占用多少内存.以M为单位,默认为64M. -p:指定占用的端口.默认端口是11211. -l

django+celery+redis环境搭建

初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar.gz,cd httpd-2.0.63, ./configure --prefix=/usr/local/apache --enable-mods=all --enable-cache --enable-mem-cache --enable-file-cache --enable-rewrite(这一

Python Django 集成Redis Sentinel(哨兵)集群开发秒杀系统

我们知道秒杀系统最大特点是瞬时高并发.高访问量的系统.我们还要保证它的高可用性.这里我们采用Python Django 集成Redis Sentinel(哨兵)集群开发秒杀系统. Redis Sentinel(哨兵)集群Redis哨兵为Redis集群提供了高可用性.实际上这意味着我们可以使用哨兵模式创建一个可以不用人为干预而应对各种故障的Redis集群部署.可大大提高系统的高可用性. 哨兵模式还提供了其他的附加功能,如监控,通知,为客户端提供配置. 下面是在宏观层面上哨兵模式的功能列表: 监控:

Django中redis的使用方法(包括安装、配置、启动)

一.安装redis: 1.下载: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压 tar -zxvf redis-3.2.8.tar.gz 3.复制,放到/usr/local目录下 sudo mv ./redis-3.2.8 /usr/local/redis 4.进入到redis目录下 cd /usr/local/redis/ 5.生成 sudo make 6.测试,时间会比较长 sudo make test 7.安装

Django | 页面数据的缓存与使用

为什么要使用缓存? 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求页面,服务器会重新计算.从开销处理的角度来看,这比你读取一个现成的标准文件的代价要昂贵的多 使用缓存,将多用户访问时基本相同的数据先缓存起来:这样当用户访问页面的时候,不需要重新计算数据,而是直接从缓存里读取,避免性能上的开销. 使用Redis数据库 使用redis数据库存储缓存,首先redis是key-value类型的数据库,NoSQL,且也是内存型数据库,redis是将数据加载到内存中,进行操作,并异步将数据备份到硬

Redis作为缓存:实战自我总结(转载)

转载:[http://www.tuicool.com/articles/zayY7v] redis缓存服务器笔记 redis是一个高性能的key-value存储系统,能够作为缓存框架和队列.但是由于他是一个内存系统,这些数据还是要存储到数据库中的. 作为缓存框架: create/updae/delete---同时存到redis和数据库 query--先从redis查,没有记录才从数据库查,并把从数据库查的结果也放一份到redis 作为缓存队列: 2.把对象Object存储到redis中,怎么存?

redis spring缓存配置

使用redis做缓存的思路是在spring的项目中配置拦截器,在service层做切面,在findXXX或者getXXX等方法上进行拦截判断是否缓存即可. 1.环境:spring 3.1.2 + spring data redis 1.0.0+ jedis 2.1.0 2.spring配置文件配置: <!-- jedis 配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConf