redis
文章平均质量分 89
coreyhsu2020
公众号:锦秋聊学习
展开
-
redis的hashtag、槽、故障转移、热点等问题
1、了解一下hashtag的概念以及在cluster集群模式下的使用2、hash槽在迁移过程中的读写冲突的解决方案3、高并发下槽的访问冲突等注意问题点4、redis的cluster选举方案5、为什么只有16384个槽附2注意点:2.5、迁移过程中的读写冲突因为migrate命令是同步阻塞的,因此不会存在一个key正在被迁移又同时被读写的情况,但由于一个slot下可能有部分key被迁移完成,部分key正在等待迁移的情况,因此如果读写的key所属的slot正在被迁移,redis-clu原创 2022-05-21 15:54:12 · 1190 阅读 · 0 评论 -
关于Redis分布式锁的8个问题
【本文转载自公众号文章,觉得文章写的很不错,放在自己空间供以后学习回顾,如涉及侵权,请联系我删除,感谢】在分布式系统中,由于 redis 分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。但不是说用了 redis 分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题。今天我们就一起聊聊 redis 分布式锁的一些坑,给有需要的朋友一个参考:非原子操作使用 redis 的分布式锁,我们首先想到的可能是 setNx 命转载 2022-05-03 16:27:49 · 5574 阅读 · 2 评论 -
关于缓存冷启动以及缓存预热的相关方案分析
在研读关于缓存相关的文章过程中,发现和缓存冷启动以及缓存预热这几点还讲解的可以,虽然说的有点笼统,但是方案大致还算明白了,以下为摘录内容,可以研读。1.缓存冷启动以及缓存预热解决方案当系统第一次启动,大量请求涌入,此时的缓存为空,可能会导致DB崩溃,进而让系统不可用,同样当redis所有缓存数据异常丢失,也会导致该问题。因此,可以提前放入数据到redis避免上述冷启动的问题,当然也不可能是全量数据,可以根据类似于当天的具体访问情况,实时统计出访问频率较高的热数据,这里热数据也比较多,需要多个服务并行转载 2021-03-04 23:56:02 · 718 阅读 · 1 评论 -
使用Redis分布式锁的一系列问题以及解决方案
1.解决主从架构的redis分布式锁主节点宕机锁丢失的问题普通实现说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下:-获取锁(unique_value可以是UUID等)SET resource_name unique_value NX PX 30000 - 释放锁(lua脚本中,一定要比较value,防止误解锁)if redis.call("get",KEYS[1])转载 2021-02-17 20:03:48 · 1859 阅读 · 0 评论 -
AOF与RDB的优缺点对比
首先要先说下redis持久化的意义: redis持久化的意义主要在于故障恢复,比如你部署一个redis,作为缓存有可能里边有一些比较重要的数据,如果没有持久化的时候,redis遇到灾难性故障的时候就会丢失所有的数据。 多以持久化是必不可少的。1.RDB和AOF两种持久化机制的介绍 RDB持久化机制对redis中的数据执行周期性的持久化。 AOF持久化机制对每条写入命令作为日志,以append-only模式写入一个日志文件中,在redis重启的时候,可以通过AOF写入的指令来重新构建整个数据集。 通过RD转载 2021-01-18 00:34:23 · 1768 阅读 · 0 评论 -
Skip List--跳表(全网最详细的跳表文章没有之一)
跳表是一种神奇的数据结构,因为几乎所有版本的大学本科教材上都没有跳表这种数据结构,而且神书《算法导论》、《算法第四版》这两本书中也没有介绍跳表。但是跳表插入、删除、查找元素的时间复杂度跟红黑树都是一样量级的,时间复杂度都是O(logn),而且跳表有一个特性是红黑树无法匹敌的(具体什么特性后面会提到)。所以在工业中,跳表也会经常被用到。废话不多说了,开始今天的跳表学习。通过本文,你能 get 到以下知识:什么是跳表? 跳表的查找、插入、删除元素的流程 跳表查找、插入、删除元素的时间复杂度 跳表插转载 2021-01-04 14:45:31 · 1355 阅读 · 0 评论 -
分布式缓存一致性问题解决方案
该文章主要是来自于通用配置系统使用了文件缓存作为二级缓存,他的一致性如果保证的问题,目前了解到的有三种方案:1.服务发现(注册中心,利用类似zookeeper来协调各个缓存实例节点)2.采用队列方式,将更新作为消息放入mq中进行消费(新增一个线下的读binlog的异步模块)3.过期时间另外一种设计本地缓存与redis缓存的机制流程图主要参考以下文章1.分布式缓存的一致性问题2.聊聊轻量级本地缓存设计3.缓存同步、如何保证缓存一致性、缓存误用...原创 2020-08-22 21:27:03 · 2114 阅读 · 0 评论 -
redis实现分布式锁相关总结
首先要清楚,分布式锁的实现主要需要涉及到那几点,这里无非就是加锁和解锁。后面要谈的就是怎么来实现,这其中又涉及到了redis的原子性以及使用lua脚本来操作的方法,进一步比较了lua脚本与redis事务的优缺点最后谈到了php中如果调用lua脚本实现的问题分布式锁的特点(也即说明吧)分布式锁一般有如下的特点:互斥性: 同一时刻只能有一个线程持有锁 可重入性: 同一节点上的同一个线程如果获取了锁之后能够再次获取锁 锁超时:和J.U.C中的锁一样支持锁超时,防止死锁 高性能和高可.原创 2020-06-18 00:33:33 · 244 阅读 · 0 评论