随笔分类 -  缓存

摘要:String 字符串 字符串类型是redis最基础的数据结构,首先键是字符串类型,而且其他几种结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习尊定基础。字符串类型实际上可以是字符串(简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视 阅读全文
posted @ 2021-01-14 00:52 吴磊的 阅读(374) 评论(0) 推荐(0) 编辑
摘要:工作原理 canal 译意为水道,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 * MySQL主备复制原理MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show bin 阅读全文
posted @ 2020-12-25 18:01 吴磊的 阅读(1276) 评论(0) 推荐(0) 编辑
摘要:我们通常使用的synchronized或者Lock都是线程锁,对同一个JVM进程内的多个线程有效。因为锁的本质 是内存中存放一个标记,记录获取锁的线程是谁,这个标记对每个线程都可见。然而我们启动的多个订单服务,就是多个JVM,内存中的锁显然是不共享的,每个JVM进程都有自己的 锁,自然无法保证线程的 阅读全文
posted @ 2019-10-11 08:46 吴磊的 阅读(41005) 评论(6) 推荐(9) 编辑
摘要:1、最初级的缓存不一致问题以及解决方案先删除缓存,再修改数据库,如果修改数据库的时候,别的线程查到旧数据并更新缓存,缓存中是旧数据,数据出现不一致。 先修改数据库,再删除缓存,如果删除缓存成功了修改数据库失败了,那么数据库中是旧数据,缓存中是空的,那么数据不会不一致,因为读的时候缓存没有,则读数据库 阅读全文
posted @ 2019-09-29 21:51 吴磊的 阅读(5079) 评论(0) 推荐(0) 编辑
摘要:缓存雪崩: 缓存雪崩大概的意思就是缓存在一定时间内失效,所有请求直接落到db中,从而造成数据库崩溃的情况。例如下面这个案例。本身系统架构是没有问题的,但是如果这时候缓存系统宕机了,每秒5000个请求全部打入到数据库中,就会造成数据库崩溃从而整个系统都不能用。 解决方案: 1:限制并发数量,比如通过令 阅读全文
posted @ 2019-01-10 16:39 吴磊的 阅读(452) 评论(0) 推荐(0) 编辑
摘要:为什么redis要用单线程 我们知道,一般使用多线程可以增加系统吞吐率,但是如果没有经过良好的系统设计的话,线程数量上升到一定级别时,系统吞吐量反而会下降。出现这个情况的主要原因就是多个线程共享同一个数据结构时,为了保证共享资源的正确性、那就必须有额外机制进行保证,而这个额外机制就会带来性能开销降低 阅读全文
posted @ 2018-10-29 23:22 吴磊的 阅读(2267) 评论(0) 推荐(1) 编辑
摘要:RDB的持久化策略 (快照方式,默认持久化方式): 按照规则定时将内存中的数据同步到磁盘,它有以下4个触发场景。 1. 自己配置的快照规则 vim /redis/bin/ redis.conf;按照save <seconds> <changes>这个规则自己添加或修改规则。 2. save或者bgs 阅读全文
posted @ 2018-10-24 11:45 吴磊的 阅读(1164) 评论(0) 推荐(0) 编辑
摘要:Redis-Cluster工作原理: redis集群内置了16384个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个key 都会对应一个编号在 0-16383 之间的哈希槽 阅读全文
posted @ 2018-09-17 08:16 吴磊的 阅读(877) 评论(0) 推荐(0) 编辑

//生成目录索引列表
点击右上角即可分享
微信分享提示