Redis 和 PHP (Rediska) 在集合上相交
我正在尝试使用图形(节点/边)数据集做一些技巧。在本例中是一组数据,其中人员 x 跟随人员 y(直接关系)。我想将这些数据(从 mysql 表)加载到 redis 中(让它运行)。我选择使用 Rediska 因为我使用 PHP 并且它看起来很稳定。
Rediska 的文档和示例非常有限,所以我希望你们能帮助我。我对 noSQL 几乎没有经验,尤其是命名约定(userid:1:follows = 2?)。
我的问题:
- 我如何将一组人x跟随人y数据加载到redis数据集中
- 如何找到“相交”(SINTER)并最终得到一个php数组(所以我让人X和人Y都跟随(人的结果集)))
- 最后,我将如何“遍历”此图形数据以找到关系:人 x ->人 y ->人 z(人 x 和人 z 都跟随人 y,因此人 z 位于结果集中)
I'm trying to do some tricks with a graph (node/edges) dataset. In this case a set of data where person x follows person y (direct relation). I want to load this data (from a mysql table) into redis (have it running). I've chosen to use Rediska because I use PHP and it seems stable.
Rediska has very limited documentation and examples, so I was hoping you guys can help me. I have little to no experience with noSQL, especially the naming conventions (userid:1:follows = 2?).
My questions:
- how do I load a set of person x follows person y data into a redis data set
- how do I find the "intersect" (SINTER) and end up with a php array (so I get person X and person Y both follow (a result set) of people))
- and last not but leasy, how would I 'traverse' this graph data to find a relation: person x -> person y -> person z (person x and person z both follow person y, hence person z is in the result set)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Q1 如何将一组人x关注人y的数据加载到redis数据集中?
您需要使用集合作为数据结构,并将关注者的索引放入其中。例如,假设您有 10 个 ID 从 1 到 10 的用户,并且您想说 person:3、person:5 和 person:10 都关注 person:2 ...
这将为您提供一组 person 的关注者2 包含 ids 3、5 和 10。要查询此数据...
Q2 如何找到相交并最终得到一个 php 数组(person:x:followers && person:y:followers) ?
Q3 你会如何遍历这个图数据来找到一个关系:person x ->人 y ->人 z(人 x 和人 z 都跟随人 y,因此人 z 在结果集中)?
Q1 How do you load a set of person x follows person y data into a redis data set?
you need to use a set as the data structure and throw in there the indexes of people following. For example, suppose you have 10 users with ids from 1 to 10 and you want to say that person:3, person:5 and person:10 are all following person:2 ...
This would give you a set of followers for person 2 containing the ids 3, 5 and 10. To query this data...
Q2 How do I find the intersect and end up with a php array(person:x:followers && person:y:followers)?
Q3 how would you traverse this graph data to find a relation: person x -> person y -> person z (person x and person z both follow person y, hence person z is in the result set)?