服务器:redis读到过期数据导致过期订单重现的问题解决需要配置过期策略
卫军理解:
redis是跟memcached类似的数据库缓存系统,可以降低高并发下的数据库读取压力
但是出现问题是,例如电商平台shopnc,商家在查看订单明细的时候,有的订单已经操作退款了,
但是刷新后或者过几天诡异的出现等待退款,
这就是因为读取到了redis中的过期数据导致的,主要原因的redis过期策略配置不当
那么如何解决呢?
配置过期策略,应该把例如商品价格,商品名称这种不会发生改变或者产生改变也不会有太大影响的
可以放入redis
但是跟金钱相关的,例如交易数据,就不要设置redis了,直接从mysql本地存储数据库中调取!
另外redis跟memcached一样处于内存缓存中,关机是会消失的。
前段时间还发现有ftp传文件到服务器不生效,也是文件缓存系统有关系,nginx就是一个文件缓存系统,实现高并发也是因为缓存在服务器内存中,
如果nginx配置不当,就会导致客户浏览器读取到过期的网页文件,
合理的结构是apache实时动态数据+nginx缓存静态数据,mysql实时动态数据+redis缓存静态数据
合理的配置缓存策略非常重要。