• 【Redis】核心理论&典型应用场景


    zset:默认ziplist存储,在数据量达到一定数量下(配置文件可定制),使用跳表skipList实现

    二、应用场景

    万亿级日访问量下,Redis在微博的9年优化历程   https://cloud.tencent.com/developer/news/462944   ~~干货满满


    转载:https://blog.csdn.net/qq_42046105/article/details/95272836

    首先介绍一下业务背景:总用户量大概是 5亿左右,月活 5kw,日活近 2kw 。服务端有 1000 多个 Redis 实例,100+ 集群,每个实例的内存控制在 20g 以下。

    典型场景:

    KV 缓存,分布式锁,延时队列,定时任务,频率控制,服务发现,位图,模糊计数,布隆过滤器

    网站访问统计、分布式Session、应用排行榜、社交关系图

    KV 缓存

    基本使用:用 Redis 来缓存用户信息、会话信息、商品信息等等

    当数据量不断增长时,就使用 Codis 或者 Redis-Cluster 集群来扩容。

    除此之外 Redis 还提供了缓存模式,Set 指令不必设置过期时间,它也可以将这些键值对按照一定的策略进行淘汰。

    打开缓存模式的指令是:config set maxmemory 20gb ,这样当内存达到 20gb 时,Redis 就会开始执行淘汰策略,给新来的键值对腾出空间。

    这个策略 Redis 也是提供了很多种,总结起来这个策略分为两块:划定淘汰范围,选择淘汰算法。

    比如我们线上使用的策略是 allkeys-lru。这个 allkeys 表示对 Redis 内部所有的 key 都有可能被淘汰,不管它有没有带过期时间,而volatile只淘汰带过期时间的。

    当这个范围圈定之后,会从中选出若干个名额,怎么选择呢,这个就是淘汰算法。

    最常用的就是 LRU 算法,它有一个弱点,那就是表面功夫做得好的人可以逃过优化。 Redis 4.0 里面引入了 LFU 算法,要对平时的成绩也进行考核,只做表面功夫就已经不够用了,还要看你平时勤不勤快。

    最后还一种极不常用的算法 —— 随机摇号算法,这个算法有可能会把 CEO 也给淘汰了,所以一般不会使用它。

    分布式锁

    使用场景

     给你一个亿的keys,Redis如何统计? https://new.qq.com/omn/20210105/20210105A04VDK00.html

      

  • 相关阅读:
    php中的heredoc和nowdoc对比
    PHP官方网站及PHP手册
    php扩展编译方法
    linux下修改时间和时区
    个人觉得非常好用的mysql客户端工具HeidiSQL
    mysql主从复制总结
    mysql优化的21条经验(转)
    mysql存储引擎选择(转)
    show profiles 分析sql耗时瓶颈
    tar命令的使用方法
  • 原文地址:https://www.cnblogs.com/clarino/p/13114729.html
Copyright © 2020-2023  润新知