
redis
文章平均质量分 73
shadow_zed
有人问,你为什么这么努力?-----
因为我喜欢的东西很贵,我喜欢的人很优秀
展开
-
Spring AOP +redisson的redis分布式锁实现
Spring AOP 结合redis分布式锁实现原创 2022-08-18 10:02:02 · 1127 阅读 · 0 评论 -
详解常见负载均衡算法在Java中的实现
一致性哈希算法中,就利用哈希环结构+哈希取模判断每个请求该落入的服务器,由于服务器IP、客户端IP或缓存的Key都是相同的,所以在服务器数量不变的情况,相同的哈希条件进行哈希取模,最终计算出来的值永远都是相同的。与前面分析的最小活跃数算法一样,最优响应算法也是一种动态算法,但它比最小活跃数算法更加智能,因为最小活跃数算法中,如果一台节点存在故障,导致它自身处理的请求数比较少,那么它会遭受最大的访问压力,这显然是并不合理的。遍历之前配置的服务器列表,用随机索引与每个节点的权重值进行判断。...........转载 2022-07-16 02:11:35 · 2228 阅读 · 1 评论 -
⽤redis做榜单,分数相同时根据时间先后排序
项⽬⾥⾯有⼤量的榜单需求,很多场景下都是⽤zset来实现的。需求⾥⾯⽆⼀例外的都提到⼀个要求:分数相同的情况下,先到该分数的排前⾯。由于zset是分数优先,分数相同的时候⽤zset的member的字典序排列,并不满⾜先来后到这种需求。以前的做法基本都是分数拼凑⼀个时间量的做法:将zset的score值分成两部分:⾼位存分数,低位存时间差时间差⼀般是定⼀个截⽌时间x,x-now作为时间差⽤户a在x1时间达到了分数N,⽤户b在时间x2达到了分数N,x1<x2,那么x-x...转载 2022-05-30 15:07:09 · 1183 阅读 · 0 评论 -
Redis-过期Key删除/淘汰Kry策略
首先要区分master主节点和slave从节点。为什么呢?因为slave过期key的删除策略和master过期key的删除策略是不同的。一,redis主节点过期key的删除策略1,定时删除:在设置键的过期时间的同时,创建一个timer,让定时器在键的过期时间到达时,立即执行对键的删除操作。(主动删除)优缺点:对内存友好,但是对cpu时间不友好,有较多过期键的而情况下,删除过期键会占用相当一部分cpu时间。2,定期删除:每隔一段时间就对数据库进行一次检查,删除里面的过期键。(主动删除转载 2022-03-31 21:52:48 · 346 阅读 · 0 评论 -
Java分布式锁详解
原文出自:https://blog.csdn.net/seesun2012什么是锁?在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。 而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块取消标记后再去尝试设置标记转载 2021-02-19 11:12:06 · 388 阅读 · 0 评论 -
Redis 到底是单线程还是多线程?我要吊打面试官!
好些粉丝在后台问我:为什么请回,Redis不是单线程吗?大家注意审题:Redis是多线程还是单线程?这个问题你要从多个方面回答,如果你仅仅只回答 "单线程" 肯定是说不过去的,为什么呢?所以今天,栈长利用工作时间紧急把这个问题紧急梳理了下,希望对大家有帮助。1、Redis 单线程到底指什么?没错,大家所熟知的 Redis 确实是单线程模型,指的是执行 Redis 命令的核心模块是单线程的,而不是整个 Redis 实例就一个线程,Redis 其他模块还有各自模块的线程的。下面这个解释比转载 2020-06-03 16:57:25 · 468 阅读 · 0 评论 -
基于redis实现的扣减库存
原文链接:https://www.jianshu.com/p/76bc0e963172在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。解决方案使用mysql数据库,使用一个字段来存储库存,每次扣减库存去更新这个字段。 还是使用数据库,但是将库存分层多份存到多条记录里面,扣减库存的时候路由一下,这样子增大了并发量,但是还是避免不了大量的去...转载 2019-05-02 17:42:47 · 3074 阅读 · 1 评论 -
分布式之缓存击穿
原文:分布式之缓存击穿什么是缓存击穿在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。场景如下图所示:我们正常人在登录首页的时候,都是根据userID来命中数据,然而黑客的目的是破坏你的系统,黑客可以随机生成...转载 2019-04-21 19:16:11 · 195 阅读 · 0 评论 -
Redis的配置、启动、操作和关闭
原文:https://blog.csdn.net/sunhuiliang85/article/details/73613189一.启动Redis1.默认配置启动执行redis-server命令,按照默认的redis.conf配置文件中的配置启动Redis,如下:因为默认配置无法自定义配置。所以该方式不会再生产环境中使用2.运行配置启动在命...转载 2019-03-12 00:34:27 · 727 阅读 · 0 评论 -
redis阻塞处理分析
1.内因:A.api或数据结构使用不合理:如:对一个包含上万元素的hash结构执行hgetall操作,数据量大且命令复杂度O(n),必然阻塞B.慢查询:和很多关系型数据库(例如:MySQL)一样, Redis 也提供了慢查询日志记录,Redis 会把命令执行时间超过 slowlog-log-slower-than 的都记录在 Reids 内部的一个列表(list)中,该列表的长度最大为 s...转载 2019-03-02 21:36:02 · 2153 阅读 · 0 评论