美文网首页
web 优化—缓存—redis

web 优化—缓存—redis

作者: 想旅游的程序员 | 来源:发表于2018-10-12 20:04 被阅读0次

为什么使用缓存?

web网站一般会让多人连接上来,多个人同时访问web网站的操作[并发操作],并发操作情况下,最基本的要求就是互相操作不受影响。
网站开发完成后进行功能性测试时,压力测试。当多个客户端同时访问服务器,查询获取服务器数据时,就会出现性能问题。在这样的情况下,提升用户查询获取数据的效率变得至关重要;因为增、删、改一般不会特别频繁,对于数据的查询操作非常频繁,查询操作最为频繁的操作,性能瓶颈---数据查询【打开数据库连接、查询数据、关闭数据库连接】

为了减少和数据库的交互,使用缓存,解决查询数据时,造成的数据库资源消耗的问题

Django中使用redis

  1. 安装redis
  2. 安装django-redis中间件:这个是django的一个第三方的模块,用于Django整合redispip install django-redis
  3. 配置项:在项目的setting.py文件中配置如下选项(默认没有这个选项):
CACHES = {
   "default": {
         "BACKEND": "django_redis.cache.RedisCache",
         "LOCATION": "redis://127.0.0.1:6379/1",
         "OPTIONS": {
               "CLIENT_CLASS": "django_redis.client.DefaultClient",
             }
       }
}

redis还可以管理session,就是将session交给redis来管理(非必要,根据情况而论

from django.core.cache import cache
#缓存中存储数据
cache.set(key,value,timeout=...)

实例操作

例如:创建一个函数,若能从缓存中读取到数据,则不从数据库中读取,反之,从数据库中读取数据,并保存在缓存中

from django.core.cache import cache

from . import models

#主要作用是将数据同步到缓存中
def get_all_articles(ischange=False):
    # 首先从缓存中查询数据
    print("首页从缓存中查询数据")
    articles = cache.get("allArticles")
    if articles is None or ischange:
        print("缓存中没有数据,从数据库中读取")
        articles = models.Article.objects.all()
        # 这是将key为allArticles,value为articles的键值对存于缓存中
        print("将数据保存到缓存中")
        cache.set("allArticles", articles)
    return articles

相关文章

  • web 优化—缓存—redis

    为什么使用缓存? web网站一般会让多人连接上来,多个人同时访问web网站的操作[并发操作],并发操作情况下,最基...

  • 大厂面试系列(六):Redis和缓存等

    Redis 和MongoDB及应用 Redis redis优化策略 redis除了做缓存还能做什么? 说说redi...

  • 电商高并发秒杀4 缓存库存异步化与事务型消息

    1、高效交易验证 用户风控策略优化:策略缓存模型优化 策略缓存模型化,将对应的风控内容做到redis缓存里面,例如...

  • Web 缓存

    Web 缓存的作用与类型 数据库缓存memcached redis 服务端缓存代理服务器缓存squidCDN缓存(...

  • redis配置文件

    redis配置优化 整合springCache的文章 redis配置 Redis数据库索引(缓存将使用此索引编号的...

  • 高并发秒杀API(六)

    前言 本篇将完成高并发优化,包括: Redis后端缓存优化 并发优化 一、高并发优化分析 在优化之前要明白高并发发...

  • 2018-09-25缓存控制Cache-Control

    cache-control是http缓存,通过缓存可以实现web性能优化 首页不能设置cache-control ...

  • js基础常见问题总结(三)~

    web前端性能优化总结 浏览器访问优化 1、减少http请求,合理设置 HTTP缓存2、使用浏览器缓存3、启用压缩...

  • Redis高可用策略与集群方案

    前面几篇Redis的文章《Redis基础与入门实战》《Redis性能优化和高级用法》都是从开发的角度来介绍其在缓存...

  • go-redis 源码分析:连接池

    笔者最近在项目中基于 go-redis 实现 Redis 缓存优化性能。go-redis 是一个 Go 语言实现的...

网友评论

      本文标题:web 优化—缓存—redis

      本文链接:https://www.haomeiwen.com/subject/ikagaftx.html