旅游景区英文网站建设研究,阿里图标库谁做的网站,深圳市建设厅官方网站,ui设计师可以做到多少岁问题发生背景#xff1a;客户端请求的数据再缓存中和数据库中都不存在。 导致的问题#xff1a;缓存永远不会生效#xff0c;这些请求都会去请求数据库—导致数据库压力增大。 解决方案#xff1a; 1.缓存空对象 在Redis中缓存空对象#xff0c;告诉客户端数据库中没有该值…问题发生背景客户端请求的数据再缓存中和数据库中都不存在。 导致的问题缓存永远不会生效这些请求都会去请求数据库—导致数据库压力增大。 解决方案 1.缓存空对象 在Redis中缓存空对象告诉客户端数据库中没有该值。 该方法得设置一个短时间的TTL。 优点实现简单维护方便 缺点会有额外的内存消耗可能造成短期的不一致。 —数据库更新的时候缓存还没变。 2.布隆过滤 总体思路如上图所示就是在客户端取数据的时候先访问布隆过滤器得到数据库是否包含该数据的结果有再访问没有就不访问。 布隆过滤器原理 其实这就是一个哈希算法哈希查询算法 哈希算法是借助哈希表查找目标元素的方法其中用的是哈希函数。 key fvalue。f是哈希函数得到的结果是目标元素的key。 而在布隆过滤器这里我们不需要知道目标元素的key我们只需要知道这个元素存不存在所以我们的散列函数里面存储的就是0和10表示不存在1表示存在。 而布隆过滤器的实现
建立一个二进制向量将所有位设置为0.选定k个散列函数用于对元素进行k次散列计算向量的位下标。添加元素每添加一个就用k个散列函数分别作用于元素生成对应下标并将对应的值设为1.检查元素检查一遍是否都是1。