我正在尝试为我正在进行的项目制作“朋友流”。我在 Redis ZSETS 中保存了个人用户流。就像是:
key : { stream_id : time }
user1-stream: { 1:9931112, 3:93291, 9:9181273, ...}
user2-stream: { 4:4239191, 2:92919, 7:3293021, ...}
user3-stream: { 8:3299213, 5:97313, 6:7919921, ...}
...
user4-friends: [1,2,3]
现在,要制作 user4 的好友流,我会调用:
ZUNIONSTORE user4-friend-stream, [user1-stream, user2-stream, user3-stream]
但是,当您尝试合并总计超过 1-2000 个元素的 ZSETS 时,ZUNIONSTORE 会很慢。
我真的很想让 Redis 在 ZSETS 上进行合并排序,并将结果限制为几百个元素。是否有任何现成的数据存储可以满足我的需求?如果没有,是否有任何框架来开发类似 redis 的数据存储?
我想我可以只 fork Redis 并添加我需要的功能,但我希望避免这种情况。