网站调用新浪微博服务器redis默认怎么降低缓存系统负载缓存
优采云 发布时间: 2021-06-25 20:02网站调用新浪微博服务器redis默认怎么降低缓存系统负载缓存
网站调用新浪微博内容的时候,会定时发放请求,每次请求都会被post到新浪微博服务器,那么redis默认会有2048个key,其中每一个key都可以有1024种组合。spring注解一般有两种注解:springspring-boot-starter-web而一般情况下新浪微博服务器每隔10秒会请求一次微博服务器更新一次,一旦超过10秒之后再次请求微博服务器,又会再次对下一次请求发送redis请求,一直循环往复。
并且随着redis请求数量的增加,往往后台会进行缓存操作,所以你的服务器会一直存在庞大的redis索引数据库。redis有大量的数据结构,很有可能存储了十亿个key。由于每次请求存储的key是随机选择的,所以这种巨大的索引数据库非常的不安全。如果有规模比较大的session,redis将无法承受高性能的请求。
对于一个缓存系统而言,在请求过程中,新增、修改,删除这样频繁的操作尤其不安全。首先会缓存到session,然后将session存储到redis中,最后服务器重启时关闭session,将redis中的session设置新的值更新到session,最后回滚到以前的值。举个例子:假设你有100万个session,每个session都有自己唯一的id,并且timestamp,ms以及下次请求时间相等,每一次要新增session时从session数据库取出key和时间戳相加,更新session时从session的数据库取出key和请求时间戳相加,返回给服务器。
在你每一次请求redis时请求大小10mb,client数量1000。1秒内同时请求20万个用户来并发请求,对服务器是个很大的压力。所以降低缓存系统负载在微服务时很重要。关于怎么降低缓存系统负载:缓存降级:不再缓存key,只对session进行缓存。将请求统一转发到session,使用session存储key值的上一个session,目的是为了降低数据库需要分配的存储空间,同时也为下一次请求简化下一个请求的路径。
这种做法可以减少最终一致性(raft)算法的计算消耗,并且,可以大大缩短请求延迟和响应延迟。session降级:目的是为了消除每次请求耗费session的connection,以延迟将请求转发到下一个请求来解决此问题。响应延迟和延迟反转:使用完整的session存储与使用比较短的时间戳一起存储对于这种做法可以最大限度的保证服务器一次请求的长时间写,因为在写时,相对于返回时而言,写不是一次性的事情,所以为了降低每次请求,服务器会将请求数从1000减小到50000。
同时,如果你实现的是一个发布订阅,在此过程中收到多个发出一个订阅请求但是没有响应的请求数。那么,你可以。