84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
小伙看你根骨奇佳,潜力无限,来学PHP伐。
用redis做缓存。
key: useridvalue: set(articleid)
用户登录时,查一次redis,如果redis中不存在,则query mysql,并update redis用户点赞时,insert mysql 同时update redis
用articleid做key,记录点赞过的用户。
对于一个用户查询对某一个article是否点过赞,需要使用到hash,不然就得从集合中进行遍历,效率较低。建议每个以articleid作为key,数据结构采用hash,hash的key为userId,value直接是1即可。这样查询时间复杂度是接近O(1),而如果单纯的使用集合的话查询复杂度是O(n)。至于不能持久化的话,将数据异步同步到mysql即可,保证两边能够同步进行更新即可。mysql用于存储,而redis用于查询,当redis重启的话需要一个程序去将mysql中的数据同步到redis中。
点赞时间记录有用吗?没用的数据记录了徒增烦恼
用redis做缓存。
key: userid
value: set(articleid)
用户登录时,查一次redis,如果redis中不存在,则query mysql,并update redis
用户点赞时,insert mysql 同时update redis
用articleid做key,记录点赞过的用户。
对于一个用户查询对某一个article是否点过赞,需要使用到hash,不然就得从集合中进行遍历,效率较低。
建议每个以articleid作为key,数据结构采用hash,hash的key为userId,value直接是1即可。
这样查询时间复杂度是接近O(1),而如果单纯的使用集合的话查询复杂度是O(n)。
至于不能持久化的话,将数据异步同步到mysql即可,保证两边能够同步进行更新即可。mysql用于存储,而redis用于查询,当redis重启的话需要一个程序去将mysql中的数据同步到redis中。
点赞时间记录有用吗?没用的数据记录了徒增烦恼