扫码关注官方订阅号
小伙看你根骨奇佳,潜力无限,来学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中。
点赞时间记录有用吗?没用的数据记录了徒增烦恼
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用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中。
点赞时间记录有用吗?没用的数据记录了徒增烦恼