我觉得你这个需求就有问题,各种优惠活动都缓存,那万一活动过期了呢。。
当然,如果抛开这一切,你还需要准备一个用户标识符,比如 用户id ,或者其他的标识符。
接下来就可以根据实际情况选择一些合适的存储方案,对于这种结构不定的文档,肯定是首要选择 NoSQL,当然 NoSQL 也可以更快,大部分 NoSQL 都是选择序列化成 JSON存储,那么 MySQL 5.7 也支持 JSON,自然也可以作为一个备选方案,选择 主键ID+一个 JSON 字段的模式,大概也能够实现业务,当然,如果你不需要数据持久化的化话,可能还需要考虑数据自动丢弃。
然而相较于这个,或许还有一些方案,比如,页面「真静态化」,直接相对用户对页面渲染结果进行静态化保存,给定一定的失效时间,在存在缓存时再调用相关缓存内容。
当然,回过头来说,这跟语言没太大关系,主要是得看你的业务时什么样子的,比如上面除了 MySQL ,你还可以选择 Redis 的 Hash 或者 String,又或者选择 MongoDB、ElasticSearch、File 都可以,前提是你要熟悉它。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…