django中使用redis和django缓存

这篇具有很好参考价值的文章主要介绍了django中使用redis和django缓存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

django中使用redis

# 两种方式

         -方式一:自定义的通用方案(跟框架无关)

-写一个py文件:redis_pool.py                                   #连接池
            import redis
            POOL=redis.ConnectionPool(max_connections=10)       生成POOL。做成单例
        -在用的位置,导入直接使用
             conn = redis.Redis(connection_pool=POOL)
            conn.incrby('a1')
 

 -方式二:django使用redis          -------自带连接池

   -django中有个模块,django-redis,方便我们快速集成redis
        -1 下载:pip install django-redis
        -2 配置文件配置:
            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",
                    }
                }
            }
            
        -3 在使用的地方,导入直接使用
        from django_redis import get_redis_connection
        class MyResponseView(APIView):
            def get(self, request):
                conn = get_redis_connection()  # 从连接池中拿出一个链接
                conn.incrby('a1')
                conn.set('name','彭于晏')
                return APIResponse()

 django缓存

# django 是大而全的框架,内置了很多web开发需要的东西,缓存内置了

# 缓存:可以把django中的一个变量(数据),存放到某个位置,下次还可以取出来

# 之前用过:默认放在:内存中,其实可以放在文件中,数据库,redis。。。。
from django.core.cache import cache
cache.set('key','value',5) # 存放值       5为有效时间
res=cache.get('key') # 取值


# 通过配置,控制存放在哪,只要如下写,就会放在redis中
   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缓存最强大之处在于,只要是python的变量,任意类型都可以,尽管使用set设置值


       l = [1, 'lqz', [1, 3, 4, 5, 6], '彭于晏']
       cache.set('ll1', l)
    
# 以后再django中往redis放数据,就用cache即可

# redis的5大数据类型,只支持一层


# 看一下这篇文章:https://www.cnblogs.com/liuqingzheng/articles/9803351.html
 

 django缓存的强大之处

django缓存最强大之处在于,只要是python的变量,任意类型都可以,尽管使用set设置值

它是通过python所独有的方式,将任意类型的变量,序列化存在redis中-------pickle序列化

        #序列化
    -json序列化---》得到字符串
        json不能序列化对象(自定义的类的对象) 
            -数据结构:数据的组织形式跟下面不一样
        能序列化: 数字,字符串,布尔,列表,字典  时间对象
    -pickle序列化
        -python独有的,二进制形式
        -python可以序列化所有对象---》二进制形式
        -二进制---》返序列化回来---》对象:属性,有方法文章来源地址https://www.toymoban.com/news/detail-511366.html

到了这里,关于django中使用redis和django缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一个月学通Python(二十六):Django使用缓存

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》

    2024年02月15日
    浏览(45)
  • 使用django-admin来做erp,是否需要使用缓存数据库

    需求: 结论:仅仅使用django admin,不需要使用缓存 1:在django admin后台中禁止一次性下载超过100条带有手机号码字段的数据,从而限制转换解密时间在5秒钟内 2:非要缩短时间,让甲方加价钱 展开讨论 首先,Django Admin是Django框架的一个组成部分,用于创建网站的管理后台。它

    2024年01月25日
    浏览(53)
  • springboot:缓存不止redis,学会使用本地缓存ehcache

    随着redis的普及,更多的同学对redis分布式缓存更加熟悉,但在一些实际场景中,其实并不需要用到redis,使用更加简单的本地缓存即可实现我们的缓存需求。 今天,我们一起来看看本地缓存组件ehcache ehcache是基于java开发的本地缓存组件,无需单独安装部署,只要引入jar包就

    2024年02月01日
    浏览(41)
  • redis(12):springboot使用redis注解做缓存

    1 新建springboot项目   2 相关注解 @EnableCaching 在启动类上加上注解启动缓存 #作用在你要缓存的数据上 @Cacheable(key=\\\"#id\\\",cacheNames=\\\"com.sxt.service.impl.MenuServiceImpl\\\") @Cacheput 解决脏读 @CachEvict(解决脏读) @Cacheconfig(全局的配置缓存) 3 修改yml

    2024年02月15日
    浏览(44)
  • Django中如何正确使用 redis

    在构建 websocket 的过程中,我在 consumers.py 中的代码如下: 使用 channel_layer.group_add : group_add 是 Channels 的一种机制,用于将给定的 channel 添加到特定的 group 中。 在 Channels 中,一个 group 可以被看作是一组监听某个特定事件的 WebSocket 连接集合。当你想向这些连接发送相同的消

    2024年02月12日
    浏览(32)
  • SpringBoot 如何使用 Redis 作为缓存?

    在今天的互联网应用中,缓存是一个非常重要的概念。缓存可以减轻数据库的负担,提高系统的性能。Redis 是一个非常流行的内存数据库,它可以用作缓存,提供快速的读写速度和高可用性。在本文中,我们将介绍如何在 SpringBoot 中使用 Redis 作为缓存。 Redis 是一个高性能的

    2024年02月11日
    浏览(35)
  • 使用SpringCache操作Redis缓存数据

    SpringCache是一个框架,实现了基于注解的缓存功能,只需要简单的加一个注解,就能实现缓存功能。 SpringCache提供了一层抽象,底层可以切换不同的缓存实现,例如: EHCache Caffeine Redis 使用(导入redis跟SpringCache的 依赖即可) @EnableCaching 开启缓存注解功能,加在启动类上 @Ca

    2024年01月20日
    浏览(32)
  • Redis学习(一)数据类型、Java中使用redis、缓存概念

    List可以看做是一个双向链表结构,既可以支持正向检索,也可以支持反向检索。 链表的特点是插入和删除效率快,常用来存储有序的、需频繁插入和删除的数据,例如朋友圈点赞列表,评论列表等。 注意:这里的set是无序的! keys:查看符合模板的所有key del:删除一个key,

    2024年02月13日
    浏览(34)
  • SpringBoot使用redis作为缓存的实例

    目录 什么是缓存?  缓存的作用? 缓存的成本? 实际项目中的应用  代码展示 缓存 就是数据交换的缓冲区(称作 Cache [ kæʃ ] ),是存贮数据的临时地方,一般读写性能较高。         降低后端负载         提高读写效率,降低响应时间         数据一致性成本

    2024年02月14日
    浏览(40)
  • 缓存优化--使用Redis将项目进行优化

    问题描述: 用户数量多,系统访问量大的时候,用户发送大量的请求,导致频繁访问数据库,系统性能下降,用户体验差。 maven坐标 在项目的pom.xml文件中导入spring data redis的maven坐标: 配置文件 在项目的application. ym1中加入redis相关配置: 配置类 在项目中加入配置类Redisconfig

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包