如何用PHP结合Redis位图实现长尾词签到统计?

2026-04-02 04:050阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1502个文字,预计阅读时间需要7分钟。

如何用PHP结合Redis位图实现长尾词签到统计?

一、需求+记录用户签到,查询用户签到+二、技术方案+1、使用MySQL(使用max_time字段作为连续签到天数)+思路:(1)用户签到,插入一条记录,根据create_time查询前一天是否已签到,有签到则max_time+1,无签到则max_time=1

一、需求

记录用户签到,查询用户签到

二、技术方案

1、使用mysql(max_time字段为连续签到天数)

思路:

(1)用户签到,插入一条记录,根据create_time查询昨日是否签到,有签到则max_time在原基础+1,否则,max_time=0

(2)检测签到,根据user_id、create_time查询记录是否存在,不存在则表示未签到

2、使用redis位图功能

思路:

(1)每个用户每个月单独一条redis记录,如00101010101010,从左往右代表01-31天(每月有几天,就到几天)
(2)每月8号凌晨,统一将redis的记录,搬至mysql,记录如图

(3)查询当月,从redis查,上月则从mysql获取

3、方案对比

举例:一万个用户签到365天

方案1、mysql 插入365万条记录

· 频繁请求数据库做一些日志记录浪费服务器开销。

阅读全文

本文共计1502个文字,预计阅读时间需要7分钟。

如何用PHP结合Redis位图实现长尾词签到统计?

一、需求+记录用户签到,查询用户签到+二、技术方案+1、使用MySQL(使用max_time字段作为连续签到天数)+思路:(1)用户签到,插入一条记录,根据create_time查询前一天是否已签到,有签到则max_time+1,无签到则max_time=1

一、需求

记录用户签到,查询用户签到

二、技术方案

1、使用mysql(max_time字段为连续签到天数)

思路:

(1)用户签到,插入一条记录,根据create_time查询昨日是否签到,有签到则max_time在原基础+1,否则,max_time=0

(2)检测签到,根据user_id、create_time查询记录是否存在,不存在则表示未签到

2、使用redis位图功能

思路:

(1)每个用户每个月单独一条redis记录,如00101010101010,从左往右代表01-31天(每月有几天,就到几天)
(2)每月8号凌晨,统一将redis的记录,搬至mysql,记录如图

(3)查询当月,从redis查,上月则从mysql获取

3、方案对比

举例:一万个用户签到365天

方案1、mysql 插入365万条记录

· 频繁请求数据库做一些日志记录浪费服务器开销。

阅读全文