redis
文章平均质量分 79
哒哒-blog
架构师的成长之路
展开
-
Redis分布式锁
Redis分布式锁分布式锁内存淘汰策略多级缓存分布式锁代码实现:加锁与解锁:<?phpnamespace App\Services;use Illuminate\Support\Facades\Redis;class RedisLockService{ const LOCK_SUCCESS = 'OK'; const IF_NOT_EXISTS = 'NX'; //代表只在键不存在时,才对键进行设置操作。键存在不能设置值 const MILLISECO原创 2021-03-28 14:33:55 · 162 阅读 · 0 评论 -
Redis 缓存穿透,雪崩
Redis 缓存穿透,雪崩缓存穿透的原因及解决办法缓存空对象使用布隆过滤器缓存雪崩雪崩预防方案缓存穿透的原因及解决办法缓存穿透是指查询一个不存在的数据,缓存层与存储层都不会命中,通常出于容错的考虑,如果从存储层查不到数据则不写入缓存层,比如下面的图中:上图步骤为:缓存层不命中存储层不命中,不将空结果写回缓存返回空结果缓存穿透将导致不存在的数据每次请求都需要到存储层去查询,失去了缓存保护后端存储的意义。缓存穿透问题会可能使后端存储负载加大,由于很多存储不具备高并发性,甚至可能造成后端存原创 2021-03-26 10:27:34 · 130 阅读 · 2 评论 -
Redis 缓存击穿
Redis 缓存击穿,失效以及维度划分缓存击穿缓存击穿问题解决1 互斥锁2 key设置永不过期图左侧为客户端直接调用存储层的架构,右侧为比较典型的缓存层+存储层架构。收益:①加速读写:因为缓存通常都是全内存的,而存储层通常读写性能不够强悍(例如MySQL),通过缓存的使用可以有效地加速读写,优化用户体验。②降低后端负载:帮助后端减少访问量和复杂计算(例如很复杂的SQL语句),在很大程度降低了后端的负载。成本:①数据不一致性:缓存层和存储层的数据存在着一定时间窗口的不一致性,时间窗口跟原创 2021-03-25 17:23:35 · 167 阅读 · 2 评论 -
Redis事务
Redis事务任何数据库都有一套自己的事务控制机制,redis事务是一次可以执行多个命令,它的本质是一组命令的集合。一个事务中所有的命令都会被序列化,在事务执行的过程中会按照顺序执行队列中的命令。其它客户端提交的命令请求会等到事务执行完毕再执行。mysql事务特点Redis事务常用的关于事务的命令有:MULTI:使用该命令,标记一个事务块的开始,通常在执行之后会回复OK,(但不一定真的OK),这个时候用户可以输入多个操作来代替逐条操作,redis会将这些操作放入队列中。EXE原创 2021-03-22 14:19:18 · 67 阅读 · 0 评论 -
redis 基础数据类型及应用 1
redis 基础数据类型及应用 1redis简介一、 string 数据类型与结构(字符串)1 string类型简介2 常用命令1、set 命令2、get 命令3、getset 命令4、mget 命令5、decr 命令6、incr 命令2、string 数据类型的应用1 session共享2 计数器3 Redis限速二、list 数据类型与结构(列表)1、list数据类型简介2、常用命令Lpush 命令RPUSH命令Blpop 命令Brpop 命令Linsert 命令Lindex 命令Llen 命令Lran原创 2021-03-12 15:17:23 · 132 阅读 · 0 评论