-
日期:2020-11-14 13:50:50
点击:59
内容简介:前言 Redis作为缓存使用时,一些场景下要考虑内存的空间消耗问题。Redis会删除过期键以释放空间,过期键的删除策略有两种: 惰性删除:每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。 定期删除:每...
-
日期:2020-11-14 13:50:49
点击:59
内容简介:前言 Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式, 一是keys命令,简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的复杂度是 O(n),Redis库中...
-
日期:2020-11-14 13:50:49
点击:59
内容简介:Redis之所以执行速度很快,主要依赖于以下几个原因: (一)纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis 将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快; (二)单线程操作,避免了不必要的上下文切换和竞...
-
日期:2020-11-14 13:50:48
点击:59
内容简介:前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了...
-
日期:2020-11-14 13:50:48
点击:59
内容简介:在集群下,经常会因为同时处理发生资源争抢和并发问题,但是我们都知道同步锁synchronized 、cas 、ReentrankLock 这些锁的作用范围都是JVM ,说白了在集群下没啥用。这时我们就需要能在多台JVM 之间决定执行顺序的锁了,现在分布式锁主要有redis 、Zookeepe...
-
日期:2020-11-14 13:50:47
点击:59
内容简介:引言 讲了几天的数据库系列的文章,大家一定看烦了,其实还没讲完。。。(以下省略一万字)。 今天我们换换口味,来写redis方面的内容,谈谈热key问题如何解决。 其实热key问题说来也很简单,就是瞬间有几十万的请求去访问redis上某个固定的key,从而压垮缓存...
-
日期:2020-11-14 13:50:47
点击:59
内容简介:前言 还在用keys命令模糊匹配删除数据吗?这就是一颗随时爆炸的炸弹! Redis中没有批量删除特定前缀key的指令,但我们往往需要根据前缀来删除,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案 redis-cli --raw keys "ops-coffee-*" | xargs redis-cl...
-
日期:2020-11-14 13:50:46
点击:59
内容简介:由于项目中需要使用批量插入功能, 所以在网上查找到了Redis 批量插入可以使用pipeline来高效的插入, 示例代码如下: String key = "key";Jedis jedis = new Jedis("xx.xx.xx.xx");Pipeline p = jedis.pipelined();ListString myData = .... //要插入的数据列...
-
日期:2020-11-14 13:50:46
点击:59
内容简介:主要是依靠 redis + lua 来实现限流器, 使用 lua 的原因是将多条命令合并在一起作为一个原子操作, 无需过多考虑并发. 计数器模式 原理 计数器算法是指在一段窗口时间内允许通过的固定数量的请求, 比如10次/秒, 500次/30秒. 如果设置的时间粒度越细, 那么限流...
-
日期:2020-11-14 13:50:45
点击:59
内容简介:redis适合什么场景? 1、缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多。 2、排行榜 很多...