redis淘汰机制有几种_redis淘汰机制有几种

redis淘汰机制有几种_redis淘汰机制有几种1、按照固定时间间隔重试,比如100毫秒;这种方式在网络不稳定时重连可能造成某一时间点流量同时发送,阻塞网络;或者造成发送一些无意义的请求;2、按照指数时间间隔重试,比如刚开始100毫秒,下一次2

1、按照固定时间间隔重试,比如100毫秒;这种方式在网络不稳定时重连可能造成某一时间点流量同时发送,阻塞网络;或者造成发送一些无意义的请求;

2、按照指数时间间隔重试,比如刚开始100毫秒,下一次200毫秒等;比如支付宝和第三方集成时就是类似方式。

固定时间间隔重试:

Java代码  

  1. @Test  
  2. public void testFixedBackOff() {  
  3.     long interval = 100;  
  4.     long maxAttempts = 10;  
  5.     BackOff backOff = new FixedBackOff(interval, maxAttempts);  
  6.     BackOffExecution execution = backOff.start();  
  7.   
  8.     for(int i = 1; i <= 10; i++) {  
  9.         //每次重试时间是100毫秒  
  10.         System.out.println(execution.nextBackOff());  
  11.     }  
  12.     Assert.assertEquals(BackOffExecution.STOP, execution.nextBackOff());  
  13. }  

interval是重试间隔,maxAttempts是最大重试次数,如果重试到了maxAttempts,则execution.nextBackOff()=BackOffExecution.STOP。

 

指数时间间隔重试:

Java代码  

  1. @Test  
  2. public void testExponentialBackOff() {  
  3.     long initialInterval = 100;//初始间隔  
  4.     long maxInterval = 5 * 1000L;//最大间隔  
  5.     long maxElapsedTime = 50 * 1000L;//最大时间间隔  
  6.     double multiplier = 1.5;//递增倍数(即下次间隔是上次的多少倍)  
  7.     ExponentialBackOff backOff = new ExponentialBackOff(initialInterval, multiplier);  
  8.     backOff.setMaxInterval(maxInterval);  
  9.     //currentElapsedTime = interval1 + interval2 + … + intervalN;  
  10.     backOff.setMaxElapsedTime(maxElapsedTime);  
  11.   
  12.     BackOffExecution execution = backOff.start();  
  13.   
  14.     for(int i = 1; i <= 18; i++) {  
  15.         System.out.println(execution.nextBackOff());  
  16.     }  
  17.     Assert.assertEquals(BackOffExecution.STOP, execution.nextBackOff());  
  18. }  

initialInterval是初始重试间隔,maxInterval是最大的重试间隔, multiplier是递增倍数,maxElapsedTime是重试的最大时长。

今天的文章redis淘汰机制有几种_redis淘汰机制有几种分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/75502.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注