随笔分类 - 缓存
redis,memcache缓存
摘要:有一个场景,商品A预售量1000件,早上10点准时开抢,10W个人一起来抢,在正式开始之后,我们将面对两个问题1 大批的数据库请求和大量的订单创建,数据库压力巨大,有可能宕机2 商品可能出现超卖的情况解决方案如下: 这里我们先看商品超卖的问题最原始的下单流程无非就是: 判断商品库存是否足够 -> 足
阅读全文
摘要:大家都知道在天猫、京东、苏宁等等电商网站上有很多秒杀活动,例如在某一个时刻抢购一个原价1999现在秒杀价只要999的手机时,会迎来一个用户请求的高峰期,会有几十万几百万的并发量,来抢这个手机,在高并发的情形下会对数据库服务器或者是文件服务器应用服务器造成巨大的压力,严重时说不定就宕机了。 另一个问题
阅读全文
摘要:1.首先安装memcached安装包。 首先下载memcached,下载地址 (我下载的是 64位系统 1.4.4版本) 下载好了以后,放到随便一个硬盘位置比如 D:\memcached 然后打开CMD命令窗口输入 输入"D:\memcached\memcached.exe -d install"安
阅读全文
摘要:redis应用场景: 一.string 1.缓存 简单key-value存储 2.分布式锁 setnx key value,当key不存在时,将 key 的值设为 value ,返回1 若给定的 key 已经存在,则setnx不做任何动作,返回0。 当setnx返回1时,表示获取锁,做完操作以后de
阅读全文
摘要:滑动窗口短信发送限流算法 1.有两条规则 基于IP的限制和基于手机号的限制 IP规则: 1分钟限制5 10分钟限制30 1小时限制50 手机号规则: 1分钟限制1 10分钟限制5 1小时限制10 2.滑动窗口就是随着时间的流动 , 进行动态的删减区间内的数据 , 限制时获取区间内的数据 最主要的是用
阅读全文
摘要:1.缓存穿透:缓存穿透是指查询一个不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,如果有人利用不存在的key频繁攻击我们的应用,这就属于漏洞。比如用一个不存在的用户id获取用户信
阅读全文
摘要:以下是本人使用redis的场景和对应示例代码: 1.redis连接和常用函数 $redis = new Redis(); //连接redis服务器 $redis->connect('127.0.0.1', 6379); // echo "Connection to server sucessfull
阅读全文
摘要:收集了一批微信小程序的订阅消息,现在要发送 如果直接从数据库中获取,循环发送,数量不多还好,数量一多,将极大占用服务器资源,甚至造成卡顿。 这个时候就要用到redis的队列异步发送了。 直接上代码,本示例使用YII2框架 //获取数据 $subArr=XcxSubscribe::find()->wh
阅读全文