文章分类 -  分布式_缓存

摘要:引言 为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客, 阅读全文
posted @ 2020-02-27 22:09 liuxinyu123 编辑
摘要:引言 在介绍布隆过滤器之前我们首先引入几个场景。 场景一 在一个高并发的计数系统中,如果一个key没有计数,此时我们应该返回0,但是访问的key不存在,相当于每次访问缓存都不起作用了。那么如何避免频繁访问数量为0的key而导致的缓存被击穿? 有人说, 将这个key的值置为0存入缓存不就行了吗?确实, 阅读全文
posted @ 2020-02-17 23:05 liuxinyu123 编辑
摘要:1 布隆过滤器(Bloom Filter)原理以及应用 假设现在有50亿个电话号码,现在有1万个电话号码,需要快速判断这些电话号码是否已经存在? 现在有3中途径 1 通过数据库查询,但是不能快速查询。 2 把电话号码预先放在一个集合中,如果用long类型存储的话,50亿 * 8字节 = 大于需要40 阅读全文
posted @ 2019-10-21 21:42 liuxinyu123 编辑
摘要:<!-- flowchart 箭头图标 勿删 --> 定义 Hash函数:一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。 碰撞(冲突):如果两个关键字通过hash函数得到的值是一样的,就是碰撞或冲突。 Ha 阅读全文
posted @ 2019-09-26 09:16 liuxinyu123 编辑
摘要:一、什么样的数据适合缓存 二、缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。 解决方 阅读全文
posted @ 2019-09-24 17:23 liuxinyu123 编辑
摘要:阅读目录 1、memcached分布式简介 2、取模算法方式 3、一致哈希算法方式 回到顶部 1、memcached分布式简介 memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。Memcache集群主机不能够相互通信传输数据,它的“分布式”是基于客户端的程序逻辑算法进一 阅读全文
posted @ 2019-04-29 10:50 liuxinyu123 编辑

点击右上角即可分享
微信分享提示