摘要: 举一些场景: 一、比如实现一个简单的日志收集功能或发送大量短信、邮件的功能,实现方式是先将数据收集到队列中,然后有一个定时任务去消耗队列,处理该做的事情。 直接使用 Redis 的 lpush,rpop 或 rpush,lpop。 //进队列 $redis->lpush(key, value); / 阅读全文
posted @ 2020-01-17 14:48 飞龙在生 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 缓存已经成了项目中是必不可少的一部分,它是提高性能最好的方式,例如减少网络I/O、减少磁盘I/O 等,使项目加载速度变的更快。 磁盘IO(输入/输出)主要的延时是由(以15000rpm硬盘为例): 机械转动延时(机械磁盘的主要性能瓶颈,平均为2ms) + 寻址延时(2~3ms) + 块传输延时(一般 阅读全文
posted @ 2020-01-17 14:46 飞龙在生 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 每个key(即数据)如果设置了失效时间的话,如果大量key同时过期的时候,或者说因为某种原因redis中的数据突然大批量丢失,这些key又大量地去请求这些key时,因为redis里面没有这些数据,就会大量的请求就会大量涌向数据库,就会导致数据库处理不过来,导致“雪崩”。 解决办法: 1、设置均匀的过 阅读全文
posted @ 2020-01-17 13:42 飞龙在生 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 什么是缓存击穿 在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示 因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。 我们正常人在登录首页的时候,都是根据userID来命中数 阅读全文
posted @ 2020-01-17 11:53 飞龙在生 阅读(170) 评论(0) 推荐(0) 编辑
摘要: Memcached 从0.2.0开始,要求PHP版本>=5.2.0,Memcache 要求PHP版本>=4.3。 Memcached 最后发布时间为2018-12-24,Memcache 最后发布时间2013-04-07。 Memcached 基于libmemcached,Memcache 基于PE 阅读全文
posted @ 2020-01-17 11:00 飞龙在生 阅读(105) 评论(0) 推荐(0) 编辑