一个key对应着包含大量的信息的json串
对与这个高并发,而且要定时更新这个key中对应的数据 该如何处理呢?
预备:在redis设置一个 set ctrlKey 'newshops_timeStamp' 用来控制应用时的 key (redis 存一个字段代表 adKey,通过切换key取值,来取数据)
例如:一个商品信息 展示页码 要定时更新商品数据
1.定时任务一个:处理将新的商品数据放到redis中 set newshops_timeStamp "{·······}"
2.当定时任务跑完(将新的数据完全加载到redis中后)
3.插入新的key(newshops ) 放到 预备中的value(即 set ctrlKey newshops_timeStamp)
4.之后代码中 就是根据key为 newshops_timeStamp 去redis中获取商品信息
5.将旧的数据删除
以上解决方法存在的问题:比如机器负载过高导致数据删除过度消耗
解决方案:缓存商品信息的时候 设置生存时间
EXPlRE <key> <ttl> 命令用于将键key 的生存时间设置为ttl 秒