![](https://img-blog.csdnimg.cn/20210902223741785.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 81
Redis学习笔记
熟透的蜗牛
生活本就沉闷,但只要跑起来就会有风!
展开
-
关于分布式锁的续命问题——基于Redis实现的分布式锁
如果在分布式锁中,业务代码没有执行完,然后锁的键值过期了会发生什么呢?本文记录了模拟秒杀系统来实现的分布式锁过期的问题。。。。。。原创 2022-06-10 02:10:15 · 3090 阅读 · 0 评论 -
基于canal 解决Redis与数据库数据不一致问题
一、业务场景在实际生产过程中,由于网络原因或者Redis故障等等原因会导致Redis与数据库数据不一致的问题,这个时候我们怎么办?或许我们可以写一个定时Job然后定时去跑数据,或者找到那条数据不一致,然后删除Redis中的缓存,但是这些都有缺点,定时任务跑数据,延时性太大了。如果是删除缓存,数据量少还可以,数据量多了呢,写脚本?那脚本执行时候一定会影响Redis性能。Canal这个开源框架可以很友好的解决我们上面这些问题。二、Canal介绍Canal是阿里巴巴的开源项目,其原理是...原创 2021-11-25 18:12:10 · 3395 阅读 · 0 评论 -
基于Redis实现分布式锁
一、Redis分布式锁原理二、Redis实现分布式锁三、Redis集群分布式锁原创 2021-09-19 23:12:26 · 777 阅读 · 0 评论 -
基于布隆过滤器解决Redis缓存穿透的问题
一、布隆过滤器布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器的原理应用场景 对URL的去重,比如在爬虫获取数据时候。 反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱(同理,垃圾短信) 缓存穿透,将所有可能存在的数据缓存放到布隆过滤器中,当恶意访原创 2021-09-14 22:03:25 · 293 阅读 · 0 评论 -
Redis的地理空间(geospatial)
Redis的空间半径查询Geo是Redis自3.2版本之后新增的,这个查询可以满足空间距离范围的查询。下面直接上代码吧。有效的经度从-180度到180度。 有效的纬度从-85.05112878度到85.05112878度。主要命令1、geoadd:添加地理位置的坐标。 2、geopos:获取地理位置的坐标。 3、geodist:计算两个位置之间的距离。 4、georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 5、georadiusbymember:根据储存在原创 2021-09-14 20:42:08 · 405 阅读 · 0 评论 -
Redis集群搭建(传统方式&Docker方式)&集群扩容&集群缩容
一、Redis集群原理Redis 集群没有使用一致性hash,而是引入了 哈希槽的概念。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。集群的每个节点负责一部分hash槽,举个例子,比如当前集群有3个节点,那么:节点 A 包含 0 到 5500号哈希槽。节点 B 包含5501 到 11000 号哈希槽。节点 C 包含11001 到 16384号哈希槽。注意:一个键值并不是对应一个哈希槽,一个哈希槽可以有很多键值。理论上一个集群可以存.原创 2021-09-10 23:00:19 · 298 阅读 · 0 评论 -
Redis入门&Redis安装(传统方式&Docker方式)
一、什么是RedisRedis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。——百度百科二、Redis线程模型三、Redis应用场景Token令牌的生成 在分布式场景中可以将Token令牌存放到redis中。 短.原创 2021-09-04 00:09:54 · 307 阅读 · 0 评论 -
Redis事务&Redis存放二进制对象&Redis持久化
一、Redis事务传统数据库的特性Atomicity(原子性):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。 Isolation.原创 2021-09-05 00:58:28 · 1152 阅读 · 0 评论 -
Redis缓存穿透&缓存击穿&缓存雪崩
一、缓存穿透缓存穿透是指使用不存在的key进行大量的高并发查询,导致缓存无法命中,每次请求都要都要穿透到后端数据库查询,使得数据库的压力非常大,甚至导致数据库服务压死。解决方案:接口层实现api限流、用户授权、id检查等。请移步网关限流 从缓存和数据库都取不到数据的话,一样将数据库空值放入缓存中,设置30s有效期避免使用同一个id对数据库攻击压力大;二、缓存击穿在高并发的情况下,当一个缓存key过期时,因为访问该key请求较大,多个请求同时发现缓存过期,因此对多个请求同时数据库查询、同时原创 2021-09-07 23:14:30 · 124 阅读 · 0 评论 -
Redis的淘汰策略&键值过期策略&键值过期回调
一、Redis的淘汰策略由于Redis的数据存放在内存中,假如Redis一直往内存(内存又称主。它是CPU能直接寻址的存存储空间,由半导体器件制成。特点是存取速率快)中存值,总有一天,你的内存会被占满,这将是一个悲剧,所以Redis设置了淘汰策略。二、Redis的过期策略三、过期回调(监听键值失效)...原创 2021-09-05 23:26:36 · 1089 阅读 · 7 评论 -
Redis主从复制&Redis哨兵机制&Springboot整合哨兵
一、Redis主从复制单个Redis不能实现高可用,如果Redis宕机之后,那么Redis服务就不可以用了。二、Redis主从复制配置三、哨兵机制原理四、哨兵机制配置五、总结原创 2021-09-08 20:19:58 · 636 阅读 · 1 评论