• Redis缓存应用场景


    记录一下自己的听课笔记,看的网课。

    参考资料:https://zhuanlan.zhihu.com/p/157717158

    常见应用场景

    1 数据缓存

      缓存一些常用的、经常访问的、不经常变化的数据,也就是相对稳定即时性低的,比如说:菜单/权限/类别/数据字典。

    2 文章点赞/阅读量

      这样的数据放缓存是因为文章的阅读量和点赞量变化太快了,如果频繁的更新数据库,数据库压力太大了,顶不住的。如果放到redis中缓存起来,读写更快。加入开启redis的数据持久化,就算redis崩掉也没事,因为数据都存到磁盘里面了,然后定时或者一定次数的写入数据库,同步数据就行了。就算数据丢了也没有问题,不是什么影响业务的数据。

    3 密码错误

      假如有这样一种需求:限制24小时内密码只能错误5次,输入密码错误5次后就不让登录了。我们平常是不是有这样一种做法,在数据表里面加个字段记录一下这个人的错误次数,每次密码错误就更新错误次数,判断错误次数是否超出所限制的次数。这时候我们可以放到redis缓存里面使用用户名做key+次数做value记录一下这个人的尝试次数,设置有效期24小时。

    4 微信公众号投票

      同密码错误场景一致

    5 秒杀

      东西少并发高,如果直接访问数据库的话数据库顶不住。加上redis的话,我们可以把库存放到redis中存储,redis本身有一个单线程模型,可以来一个请求,我们访问一下数据库,如果库存没有了直接返回结果,不会再访问数据库了。

    6 分布式锁

      Redis可用于实现分布式锁。为了确保分布式锁可用,至少锁的实现必须同时满足以下条件:

        1)互斥在任何时候,只有一个客户端可以持有该锁;

        2)不会发生死锁;

        3)锁定和解锁必须是同一客户端,并且该客户端无法解锁他人添加的锁。

    7 分布式 Session

      使用Redis在其他存储上缓存会话的优点是Redis提供了持久性,目前很多解决方案都采用Redis作为会话存储解决方案。待补充。

  • 相关阅读:
    玩转html2canvas以及常见问题解决
    docker磁盘空间清理办法
    统计行数、文件夹个数、文件个数的相关shell命令
    golang将字符串进行md5加密
    思考如何将自动化测试加入持续集成中
    锋利的NodeJS之NodeJS多线程
    成年人的必修课:抗压和自驱力
    MacOS下PHP7.1升级到PHP7.4.15
    php性能分析利器:xhprof
    后Low Code时代:聚焦和突破
  • 原文地址:https://www.cnblogs.com/dawenyang/p/14600980.html
Copyright © 2020-2023  润新知