redis 如何优雅的删除集合中值为json的数据?

我将消息主体内容转为json字符串存储在redis中,使用集合方式(sadd)存储的,请问能否及如何根据消息主体中的唯一标示id去删除redis该条消息?
如不能根据id去删除,有无更好的“系统未读消息”的设计方案?

阅读 5k
4 个回答

redis是k-v存储,无论如何都要记着这一点;所以不能根据标识ID去删除;

每一条里面的id都是唯一的嘛?还是一条里面有多个id?

请考虑一下是否可以调整消息在redis的存储结构,比如,消息的唯一标志id存储在set中,而消息信息可以以id作为键,消息内容作为值存储在hash结构中,这样只要删除set中的元素时,顺带把hash中相关的元素也删除呢

可以在将 msg-body 存入 redis 时,以 业务关键词 + msg-body-id 作为存储的 key
这样可以在删除时,唯一定位,通过 key 直接删除。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题