创研科技网站,如何防止网站被镜像,男女做羞羞的事情网站,建设企业网站登录目录
一#xff1a;缓存数据
1.1 应用场景
1.2#xff1a;缓存数据出现的问题
1.2.1 缓存穿透
1.2.2 解决办法
1.2.3 缓存击穿
1.2.4 解决办法
1.2.5 缓存雪崩
1.2.6 解决办法 一#xff1a;缓存数据
1.1 应用场景
数据库查询结果缓存是一种常见的缓存应用场景缓存数据
1.1 应用场景
1.2缓存数据出现的问题
1.2.1 缓存穿透
1.2.2 解决办法
1.2.3 缓存击穿
1.2.4 解决办法
1.2.5 缓存雪崩
1.2.6 解决办法 一缓存数据
1.1 应用场景
数据库查询结果缓存是一种常见的缓存应用场景它通过将数据库查询的结果存储在缓存中以便在未来的查询中快速获取这些结果从而提高应用程序的性能。
1.将不经常更改的数据缓存起来
比如我们的菜品数据、套餐数据、菜品分类数据这些数据是我们不会经常改变的的我们可以通过Redis缓存起来减少请求到数据库的IO次数提高性能
2.将查询结果缓存起来
经常被查询的数据可能是消费者比较喜欢的数据我们可以将查询结果缓存起来以便下次相同的搜索请求可以直接从缓存中获取数据而无需再次查询数据库。
3.Redis缓存会话信息单点登录
为了缓解我们的服务器压力我们的不同业务可能是放在不同的服务器为了让我们不同的服务器去认识同一个我以确保会话在不同服务器之间共享将登录成功创建的session存入redis中其他关联项目模块都从该项目中获取登录的session也就是拿redis中的登录数据。
我们缓存会话信息可以设置缓存时间当我们的用户长期没有操作时删除会话信息让用户重新登录
1.2缓存数据出现的问题 1.2.1 缓存穿透
一直去数据库请求不存在的数据缓存中也存不上数据Id不存在或者伪造Id 1.2.2 解决办法
1我们通过参数校验拦截掉不合法的请求 2我们可以自定义一个map数据量较少的时候先判断map中存在不存在存在就看缓存不存在就直接拒绝该请求
3布隆过滤器 布隆过滤器底层采用bit数组来存储数据默认是0初始化存在key进行一些列的hash每个key都会计算出多个位置把这些位置设置成1之后如果我们的请求过来请求用相同的hash去计算位置如果匹配的多个位是1说明元素存在可以访问不存在拒绝请求
4缓存空数据 1.2.3 缓存击穿
我们的缓存热点数据到期缓存数据失效同一时间访问的数据量过大同时访问数据库导致宕机 1.2.4 解决办法
我们对每个请求加锁防止相同产品的多个请求同时访问数据库
我们可以在过期之前刷新我们的过期时间
不设置过期时间预热手动删除
1.2.5 缓存雪崩
缓存雪崩 1.2.6 解决办法
多个热门key同时失效
我们可以在过期时间戳加上一个随机数防止我们的相同的key同时失效我们可以通过哨兵模式避免单结点故障导致整个服务不可用master宕机了slave服务器自动升级为master服务服务降级我们配置默认数据当我们的规定时间内获取数据失败次数达到我们设置的值就全局开关打开去配置中心获取默认数据如果一分钟内可以获取到两次数据则把全局开关关闭限流