赞
踩
Redis数据存放在内存里面内存有可能撑爆,为了不让内存撑爆所以Redis必须得有一些淘汰策略。一旦达到Redis缓存阈值就会触发淘汰策略。
在redis.conf文件中,我们可以设置Redis内存大小的限制。
如图所示我们能看出redis默认缓存限制就是你的内存大小,redis没有指定特殊的阈值。但实际生产中我们一般都会进行设置。
如果我们要设置具体的缓存策略的话也可以在redis.conf文件里进行设置。
把这块的注释去掉然后改成自己想要设置的淘汰策略就行了。
处理订单过期自动取消,比如下单30分钟未支付自动更改订单状态。
1.这个我们可以这样处理首先我们可以采用定时任务,30分钟之后检查该笔订单是否已经支付。
2.根据key有效期事件回调实现。
原理:
1.创建订单的时候绑定一个token存放在redis中(有效期只有30分钟)key = token value为订单Id。
2.对该key绑定过期事件回调。
执行我们的回调方法传递我们的key到数据库中找你的订单如果还没支付的话我就把他的状态改成已超时。如果发现这个订单已支付的情况下那我就啥也不干。
在redis配置文件中我们可以开启事件回调监听
就是把notify-keyspace-events Ex注释去掉放开
首先我们添加配置类
@Configuration
public class RedisListenerConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。