Redis 设置超时,终止尽早(redis超时终止)
Redis,一种高效、高性能的NoSQL键值存储系统,很受欢迎,并且由于它的出色表现,经常被用作企业级应用场景的热门技术。一方面,Redis的支持多种数据结构,能够满足客户对于更多复杂业务需求;另一方面,Redis的数据抗并发性非常好,更加稳定可靠,极大提升了“服务可用性”。客户也会喜欢上Redis提供的强大实时可见性能。
由于每次操作都会引起服务器压力,所以在利用Redis时,一定要设定终止条件,使得终止操作尽早发生。这样,就能够有效的避免一些不必要的不可控因素出现,特别是服务中断无法向客户返回结果的情况。此外,为了支持数据的持久性,我们还需要设定超时时间,即确定当服务器不可以继续提供服务时需要返回的默认结果。
例如,我们希望在Redis服务器中查找某个key,并且设置超时,如果在3秒内,没能查找到key,就返回null:
public Object getWithTimeout(final String key, final Long timeout) {
Object value = null;
ValueOperations valueOperations = redisTemplate.opsForValue();
if (timeout == null) { //不开启超时限制
value = valueOperations.get(key);
} else {
value = redisTemplate.execute(new RedisCallback() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
byte[] byteKey = (key).getBytes();
byte[] byteValue = connection.get(byteKey);
connection.pExpire(byteKey, timeout);
return SerializeUtils.unserialize(byteValue);
}
});
}
return value;
}
以上代码,在查找key时,会连同设置超时参数一起封装到RedisCallback接口中,如果查询不到所需的key,会在3秒内终止操作,返回null作为默认结果。
Redis的超时设定,极大提升了Redis服务的稳定性,同时,也使得数据抗并发能力得到极高层次的提升。这对于提升客户体验而言是至关重要的,因此,我们要时刻关注Redis服务器是否处于无超时情况,以防出现地此类风险和错误。
香港服务器首选后浪云,2H2G首月10元开通。
后浪云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
版权声明:
作者:后浪云
链接:https://www.idc.net/help/105635/
文章版权归作者所有,未经允许请勿转载。
THE END