这并不是什么新鲜事物,但是无法决定采取最佳方法。
有点像Facebook墙。如果已登录的用户已经喜欢该帖子,则将“赞”按钮显示为绿色,否则将其显示为灰色。
这是我现在正在考虑的两种方法
对于我要在单个视图中显示给用户的40条帖子,请获取40条帖子的Post_id,然后
1)如果我使用
之类的东西将赞存储在SET中post#id:喜欢userid1 userid2
我可以编写Lua脚本来为上述40个post_id运行ISMEMBER并将结果提供给用户
2)如果我使用
之类的东西将喜欢的东西存储在Hash中用户#id:顶赞post_Id1 1 post_id2 1 ....
在这里,我将喜欢的post_id作为键存储在用户哈希集中,并且值是一些虚拟值。现在,通过这种方法,我现在可以使用HMGET user#id:likes post_id1 post_id28 ...
在单个命令中查看用户喜欢的帖子。
我可以知道第二种方法是否有问题?看起来很简单。同样从本文档中 https://redis.io/topics/memory-optimization 它说
尽可能使用哈希
小哈希被编码在很小的空间中,因此您应该尝试 尽可能使用哈希表示数据。对于 实例,如果您在Web应用程序中有代表用户的对象, 而不是使用其他键来输入名称,姓氏,电子邮件,密码, 在所有必填字段中使用单个哈希。
如果您想进一步了解这一点,请阅读下一节。