Home > Backend Development > PHP Tutorial > 关于feed存储于redis(hash或list)中的一些疑问。

关于feed存储于redis(hash或list)中的一些疑问。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:47:04
Original
1396 people have browsed it

写在最先,可能提问得不是很好,至少意思应该表达清楚了,望各位指导。

因为业务需求,需要将feed数据表全部倒入redis中,做数据存储功能,于此带来了一系列的疑问和不解。

feed表中有以下数据:

<code>$data = array(
        array("feed_id"=>1,"uid"=>1,"content"=>"xiaoxijilu"),
        array("feed_id"=>2,"uid"=>2,"content"=>"xiaoxijilu"),
        /*****以此类推还有很多****/
        );
</code>
Copy after login
Copy after login

若将feed在redis中做hash存储,如:hset feed:list feed_id data;
存储的时候代码为:

<code>foreach($data as $k => $v){
   $redis->hset("feed:lists",$v["feed_id"],$v);
}

//x先别管hset 和 hmset的区别
</code>
Copy after login
Copy after login
<code>此时的redis KEY为:feed:list 的HASH表中已存在很多数据,若需要筛选出我的动态也就是$uid = 1 的动态,如何做?
按照我的理解,如果真的需要做 $uid = 1 的动态这需要另外创建一个KEY为feed:$uid:list的HASH表?

如果真的按照我所想的进行操作,是否会造成数据冗余?
</code>
Copy after login
Copy after login

姑且第一条我们已经解决,那又会重复第一条的疑问, 若用户A($uid = 1),且有,B($uid = 2),C($uid = 3),D($uid = 4) 的好有(姑且目前考虑所有用户均和A已是相互的好友关系),此时的A POST一条新feed(feed_id = 100),那feed:list肯定需要add feed_id100的动态,此时B , C , D 如何收到A PUSH的动态?

<code>我能想到的办法,就是按照第一条去解决,`B , C ,D` 分别有自己的`feed.list` 为 `feed:2:list` , `feed:3:list` , `feed:4:list`, A POST的同时主动PUSH  feed 到对方的list中。

那如果按照我的设想去解决,假设A 有 1W 或者更多的 好有,此时的主动PUSH性能如何解决? 

于此同时,如何解决 单方关注(单方好友)的情况?

同样,删除feed,如何解决? 


希望大神能提点!!!! 

感谢 
</code>
Copy after login
Copy after login

这个问题已被关闭,原因:

回复内容:

写在最先,可能提问得不是很好,至少意思应该表达清楚了,望各位指导。

因为业务需求,需要将feed数据表全部倒入redis中,做数据存储功能,于此带来了一系列的疑问和不解。

feed表中有以下数据:

<code>$data = array(
        array("feed_id"=>1,"uid"=>1,"content"=>"xiaoxijilu"),
        array("feed_id"=>2,"uid"=>2,"content"=>"xiaoxijilu"),
        /*****以此类推还有很多****/
        );
</code>
Copy after login
Copy after login

若将feed在redis中做hash存储,如:hset feed:list feed_id data;
存储的时候代码为:

<code>foreach($data as $k => $v){
   $redis->hset("feed:lists",$v["feed_id"],$v);
}

//x先别管hset 和 hmset的区别
</code>
Copy after login
Copy after login
<code>此时的redis KEY为:feed:list 的HASH表中已存在很多数据,若需要筛选出我的动态也就是$uid = 1 的动态,如何做?
按照我的理解,如果真的需要做 $uid = 1 的动态这需要另外创建一个KEY为feed:$uid:list的HASH表?

如果真的按照我所想的进行操作,是否会造成数据冗余?
</code>
Copy after login
Copy after login

姑且第一条我们已经解决,那又会重复第一条的疑问, 若用户A($uid = 1),且有,B($uid = 2),C($uid = 3),D($uid = 4) 的好有(姑且目前考虑所有用户均和A已是相互的好友关系),此时的A POST一条新feed(feed_id = 100),那feed:list肯定需要add feed_id100的动态,此时B , C , D 如何收到A PUSH的动态?

<code>我能想到的办法,就是按照第一条去解决,`B , C ,D` 分别有自己的`feed.list` 为 `feed:2:list` , `feed:3:list` , `feed:4:list`, A POST的同时主动PUSH  feed 到对方的list中。

那如果按照我的设想去解决,假设A 有 1W 或者更多的 好有,此时的主动PUSH性能如何解决? 

于此同时,如何解决 单方关注(单方好友)的情况?

同样,删除feed,如何解决? 


希望大神能提点!!!! 

感谢 
</code>
Copy after login
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template