• Django之django-redis对数据进行简单缓存


    最近公司老大抱怨,产品某部分内容访问速度奇慢无比,由于是之前接手的别人的代码,不太清楚业务的具体逻辑,不过,经过查看,内容为无需实时更新的内容,so  直接上缓存。

    什么是缓存?

    对于后端来说,要做的基本就是接收请求,返回数据,而在返回数据的过程中,我们要对数据库进行查询操作,找到正确的    请求内容,如果要查找的数据量比较大,每次请求的耗时将会是一个非常可怕的事情。这个时候,我们就需要对某些无需实    时更新的内容进行缓存处理,把要返回的内容存放在缓存中,收到数据请求后直接把缓存中的数据返回,如果缓存不存在,    则查询数据库,并且把内容添加进缓存中,以便下次请求。

    缓存中应该放置什么内容?

        缓存的存在,虽然给我们的访问速度带来了提升,但缓存并不是适用于任何场合,个人理解,对于一些无需实时更新,并且    数据量较大或者查询速度教慢的,可以使用缓存操作。

    Django的缓存机制。

        在django中,存在多种缓存机制,例如:利用本地内存进行缓存,利用文件系统进行缓存、利用数据库进行缓存等缓存芳    式。

         

    利用数据库进行缓存。

        由于Redis这种Key/value的存储方式,使得它很适合做缓存数据库,而django也对Redis有着非常好的支持,所以这里我选    择了使用Redis。

        首先,安装Redis数据库。操作非常简单,使用命令进行安装   #sudo apt-get install redis-server(win下可以选择下载相应的    安装包)。

        然后,就是缓存的主角,django-redis  (http://django-redis-chs.readthedocs.io/zh_CN/latest/#id2) 具体内容可在官方文档    查看。

        Django的配置相关:

        

       如果你是第一次使用Redis,并且是第一次使用django-redis  那么,上面的配置就是你要添加进setting里的内容。

        配置完成后,我们就要对想要进行缓存的数据代码进行缓存处理了。

        

        

    这是一个get请求函数,在请求里,我们首先定义一个key,这个也是我们存储在redis数据库中的key的名字(可以根据需要    随意设置)。然后就是获取key  使用cache.get  尝试获取key  如果key存在,则返回key里面的,无需重复查询数据库。

        如果key不存在。

        

        在key不存在的情况下,我们可以执行对数据库的查询操作,然后把查询的内容通过cache.set保存进redis。

        参数为(之前声明的key的名字,数据,过期时间)

    过期时间是一个比较重要的参数,它指定了你缓存进redis数据库中的数据的生存时间,可以视需求而定。

        如果key存在。

        

    直接返回value中的数据,结束。

        

        运行程序后,我们可以通过redis-cil查看我们的数据是否缓存成功。

        如果数据存在,则输入keys * 会出现你声明的key的名字。

        此外,我们还可以通过ttl [key name] 来查看我们的缓存的生存时间等,具体可参考redis使用教程。

    普通的redis缓存其实是一个相对来说简单的事情,通过一个简单的缓存,访问速度确实块了许多,可能对于缓存来说,可以做的还有更多,不过,更多的东西,要等以后变得更加强大了以后再去做了。

  • 相关阅读:
    P/Invoke .NET调用win32API
    怎么将字节流转换成汉字?(硬件printf的汉字怎么解析?)
    个人电脑配置FTP服务器,四张图搞定。项目需要,并自己写了个客户端实现下载和上传的功能!
    C# 中Datetime类用法总结
    C#环境datagidview添加删除操作
    C#环境下,文本框翻屏,怎么一直显示当前插入的内容!!!!!!!!!!!!!!!!
    eclipse下提交job时报错mapred.JobClient: No job jar file set. User classes may not be found.
    SQL Server连接数据库失败,可能的问题!
    写好的mapreduce程序,编译,打包,得到最后的jar包! 验证jar包 ! 整体流程
    在虚拟机环境下,电脑间拷贝配置好的伪分布式Hadoop环境,出现namenode不能启动的问题!
  • 原文地址:https://www.cnblogs.com/ExMan/p/9777998.html
Copyright © 2020-2023  润新知