首页 > 数据库 >将轮播图数据缓存到redis中

将轮播图数据缓存到redis中

时间:2022-11-04 18:14:06浏览次数:40  
标签:缓存 轮播 redis list BannerView banner

# class BannerView(GenericAPIView,ListModelMixin): # 继承这两个类的路由是path('banner/',views.BannerView.as_view()),
class BannerView(GenericViewSet,ListModelMixin): # 继承这两个类的路由是path('',include(router.urls)),自动分发路由
    # [: settings.BANNER_COUNTER]这个的作用是切片,限制轮播图片显示给前端的数量
    queryset = models.Banner.objects.filter(is_delete=False,is_show=True).order_by('display_order')[:settings.BANNER_COUNTER]
    serializer_class = serializers.BannerModelserialize

    # 我们需要将轮播图缓存到redis数据库中,以便后续请求时不在向mysql数据库发请求,这样在高并发的时候会快很多
    # 重写ListModelMixin的list方法
    def list(self, request, *args, **kwargs):
        # 先获取一个redis缓存中是否有轮播图数据,没有在往数据库发送请求
        banner_list = cache.get('banner_list')
        if not banner_list:
            # print('走数据库了')
            response = super().list(request, *args, **kwargs)
            # 往缓存中存一下
            cache.set('banner_list',response.data,60*60*24)
            return response
        else:
            return Response(data=banner_list)

标签:缓存,轮播,redis,list,BannerView,banner
From: https://www.cnblogs.com/suncolor/p/16858665.html

相关文章

  • RedisGeo
    前言  项目中有个经纬度的计算距离需求,想起redis中的GEO数据类型可以实现,记录下GEO的使用。 什么是GEO  GEO是Redis的一种数据类型,在Redis3.2新增的功能,主要用于......
  • 若依框架 解决(菜单之间跳转,清除缓存。跳转到子页面在回来,缓存还在问题)
    页面中使用  代码beforeRouteLeave(to,from,next){console.log("to",to);if(to.path=="/conentReview/infoDetailPage/index"){//缓存......
  • Redis学习
    学习视频:【尚硅谷】Redis6入门到精通超详细教程_哔哩哔哩_bilibili笔记:Redis|ZC的学习录(zhangc233.github.io)......
  • Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置
    问题描述SpringCache提供的@Cacheable注解不支持配置过期时间,还有缓存的自动刷新。我们可以通过配置CacheManneg来配置默认的过期时间和针对每个缓存容器(value)单独配置过......
  • Caffeine 缓存
    简介在本文中,我们来看看 ​​Caffeine​​ —一个高性能的Java缓存库。缓存和Map之间的一个根本区别在于缓存可以回收存储的item。回收策略为在指定时间删除哪些对......
  • Spring Boot缓存实战 Caffeine
    Caffeine和SpringBoot集成Caffeine是使用Java8对Guava缓存的重写版本,在SpringBoot2.0中将取代Guava。如果出现Caffeine,CaffeineCacheManager将会自动配置。使用spring.ca......
  • Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存-2
    问题上一篇​​SpringBootCache+redis设置有效时间和自动刷新缓存,时间支持在配置文件中配置​​,说了一种时间方式,直接扩展注解的Value值,如:@Override@Cacheable(value=......
  • Spring Boot缓存实战 Redis + Caffeine 实现多级缓存
    在前文我们介绍了如何使用Redis或者Caffeine来做缓存。​​SpringBoot缓存实战Redis设置有效时间和自动刷新缓存-2​​​​SpringBoot缓存实战Caffeine​​问题描述:通......
  • 基于redis实现的扣减库存
    在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。解决方案使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个......
  • 基于redis 实现分布式锁(二)
    分布式锁的解决方式基于数据库表做乐观锁,用于分布式锁。(适用于小并发)使用memcached的add()方法,用于分布式锁。使用memcached的cas()方法,用于分布式锁。(不常用)使用redis......