![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 93
编程小菜吉
生活不能只是一张白纸。
展开
-
Redis的缓存与数据库双写不一致问题
①假设我们有10次写,若是更新缓存的话需要更新10次缓存,10次数据库,我们优化为只需要删除一次缓存,更新10次数据库,当有一个读请求过来只是没有命中,去数据库读取一下,这样对性能的影响也不是很大;②这是 一个。原创 2022-11-19 20:47:04 · 1207 阅读 · 0 评论 -
Redis缓存穿透、缓存雪崩和缓存击穿
Redis 缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带了一些问题。数据一致性的问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么不能使用缓存。另外一些典型的问题就是,缓存穿透、缓存雪崩、缓存击穿。原创 2022-11-19 17:11:56 · 347 阅读 · 0 评论 -
redisson的知识点
Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。Redisson和jedis以及lettuce一样都是redis客户端,只不过Redisson功能更强大。原创 2022-11-16 13:29:29 · 862 阅读 · 0 评论 -
Redis缓存高可用集群
奇数个master节点可以在满足选举该条件的基础上节省一个节点,比如三个master节点和四个master节点的集群相比,大家如果都挂了一个master节点都能选举新master节点,如果都挂了两个master节点都没法选举新master节点了,所以。,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且。真实世界的机房网络往往并不是风平浪静的,它们经常会发生各种各样的小问题。原创 2022-11-15 16:36:13 · 1193 阅读 · 0 评论 -
Jedis简单实例、Jedis管道操作以及Lua脚本
其中 “return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}” 是被求值的Lua脚本,数字2指定了键名参数的数量, key1和key2是键名参数,分别使用 KEYS[1] 和 KEYS[2] 访问,而最后的 first 和 second 则是附加参数,可以通过 ARGV[1] 和 ARGV[2] 访问它们。:redis自带的事务功能很鸡肋,而redis的lua脚本几乎实现了常规的事务功能,官方推荐如果要使用redis的事务功能可以用redis lua替代。原创 2022-11-11 17:49:00 · 676 阅读 · 0 评论 -
Redis的主从架构以及哨兵高可用架构
当我们使用主从复制时,从库宕机依然可以将请求发送给主库或者其他从库,但是 Master 宕机,只能响应读操作,写请求无法再执行。所以主从复制架构面临一个严峻问题,主库挂了,无法执行「写操作」,无法自动选择一个 Slave 切换为 Master,也就是无法故障自动切换。 哨兵是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统,可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,原创 2022-11-11 15:47:04 · 247 阅读 · 0 评论 -
Redis持久化
如果开启了混合持久化,AOF在重写时,不再是单纯将内存数据转换为RESP命令写入AOF文件,而是将重写这一刻之前的内存做RDB快照处理,并且将RDB快照内容和增量的AOF修改内存数据的命令存在一起,都写入新的AOF文件,新的文件一开始不叫appendonly.aof,等到重写完新的AOF文件才会进行改名,覆盖原有的AOF文件,完成新旧两个AOF文件的替换。AOF重写是当我们给aof文件写了很多命令的时候,发现有一部分命令其实很冗余,占用的内存空间比较大,可以使用另外一些少部分命令去代替它,原创 2022-11-08 19:38:28 · 76 阅读 · 0 评论 -
Redis核心数据结构应用场景与高性能原理刨析
但是scan并非完美无瑕, 如果在scan的过程中如果有键的变化(增加、 删除、 修改) ,那 么遍历效果可能会碰到如下问题: 新增的键可能没有遍历到, 遍历出了重复的键等情况, 也就是说 scan并不能保证完整的遍历出来所有的键, 这些是我们在开发时需要考虑的。我们平时说的Redis单线程其实是是指从其它端发送给Redis的IO操作都是由一个线程来完成的,外部访问Redis时,Redis会将这些命令排好序,然后一个一个执行。其实严格意义上来说,Redis不是单线程的,比如Redis的。原创 2022-11-07 23:44:42 · 258 阅读 · 0 评论