为什么使用Redis做缓存 MySQL缺点 单机连接数目有限 对数据进行写速度慢 Redis优点 内存操作数据速度快 IO复用,速度快 单线程模型,避免线程切换带来的开销,速度快 一致性问题 读数据的时候首先去Redis里读,没有读到再去MySQL里读,读回来之后更新到Redis里作为下一次的缓存。 ...
分类:
其他好文 时间:
2019-05-05 19:29:24
阅读次数:
205
最近在工作中使用到了redis缓存,用来提某些业务场景的计算速度和某些情况下的操作频率限制,客户端工具使用了redisDesktopmanager来管理,在本机操作测试的时候,是没有问题的。但是将系统部署到ecs上之后,想要观察redis里面的数据缓存情况,会发现无法访问。原因是由于阿里云上面的re ...
分类:
Web程序 时间:
2019-05-04 00:50:39
阅读次数:
294
一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。 串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍 ...
分类:
数据库 时间:
2019-04-29 17:17:53
阅读次数:
136
Redis主从架构 到目前为止,Redis Cluster 能实现很好的性能,但如果只是缓存几个G的数据,那么单机Redis就足够了,但缓存主要用来读的,单机的QPS有一定的极限,一两万QPS一台应该没什么问题,但如果是几十万的QPS这类场景呢?Redis主从架构就非常合适。 主从架构主要是保证Re ...
分类:
其他好文 时间:
2019-04-22 00:44:36
阅读次数:
169
redis缓存1.缓存穿透 1>.什么是缓存穿透? 业务系统需要查训的数据根本不存在,当业务系统查询时, 首先会在缓存中查训,由于缓存中不存在,然后在往数据 库中查,由于该数据在数据库中也不存在,数据库返回为空。 综上所述:业务系统访问数据库中不存在的数据陈伟缓存穿透。 2>.缓存穿透的危害: 海量 ...
分类:
其他好文 时间:
2019-04-15 01:07:20
阅读次数:
229
缓存雪崩问题 缓存在同一时间内大量键过期(失效),接着来的一大波请求瞬间都落在了数据库中导致连接异常。 解决方案 1.加锁排队 2.建立备份缓存,缓存A和缓存B,A设置超时时间,B不设置超时时间,先从A读缓存,A没有读B,并且更新A缓存和B缓存; 3.设置缓存超时时间的时候加上一个随机的时间长度,比 ...
分类:
其他好文 时间:
2019-04-13 10:52:58
阅读次数:
150
原文:Redis 缓存应用实战为了提高系统吞吐量,我们经常在业务架构中引入缓存层。 缓存通常使用 Redis / Memcached 等高性能内存缓存来实现, 本文以 Redis 为例讨论缓存应用中面临的一些问题。 缓存更新一致性 先更新数据库,再删除缓存 先更新数据库,再更新缓存 先删除缓存,再更... ...
分类:
其他好文 时间:
2019-04-08 23:03:30
阅读次数:
260
一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看 ...
分类:
Web程序 时间:
2019-04-05 00:46:20
阅读次数:
291
什么是缓存击穿 在谈论缓存击穿之前,我们先来回忆下从缓存中加载数据的逻辑,如下图所示 因此,如果黑客每次故意查询一个在缓存内必然不存在的数据,导致每次请求都要去存储层去查询,这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。 场景如下图所示: 我们正常人在登录首页的时候,都是根据u ...
分类:
其他好文 时间:
2019-04-03 12:23:08
阅读次数:
156
优化思路: 1.检查数据表结构,改善不完善设计 2.跑一遍主要业务,收集常用的数据库查询SQL 3.分析查询SQL,适当拆分,添加索引等优化查询 4.优化SQL的同时,优化代码逻辑 5.添加本地缓存和redis缓存 6.增加数据库硬件配置和增加读写分离 检查数据表结构 看数据表结构设计是否合理。 尽 ...
分类:
数据库 时间:
2019-03-31 19:32:11
阅读次数:
201