php使用redis实现用户每日签到打卡连续签到天数代码

代码语言:php

所属分类:其他

代码描述:php使用redis实现用户每日签到打卡连续签到天数代码

代码标签: php redis 用户 每日 签到 打卡 连续 签到 天数 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
// 实例化Redis类
$redis = new Redis();

// 连接到Redis服务器
$redis->connect('127.0.0.1', 6379);

// 获取当前日期和用户ID
$today = date('Y-m-d');
$user_id = 12345; // 假设用户ID为12345

// 用户签到
function sign_in($redis, $user_id, $today) {
    // 检查用户是否已经签到
    if ($redis->sIsMember("sign_in:$today", $user_id)) {
        return "您今天已经签到过了!";
    }
    
    // 添加用户到当天签到的集合中
    $redis->sAdd("sign_in:$today", $user_id);
    
    // 记录用户签到的日期
    $redis->hSet("user_sign_in:$user_id", $today, 1);
    
    return "签到成功!";
}

// 检查用户是否签到
function check_sign_in($redis, $user_id, $today) {
    return $redis->sIsMember("sign_in:$today", $user_id);
}

// 统计用户连续签到天数
function get_consecutive_days($redis, $user_id) {
    $sign_in_dates = $redis->hKeys("user_sign_in:$user_id");
    sort($sign_in_dates);
    
    $consecutive_days = 0;
    $previous_date = null.........完整代码请登录后点击上方下载按钮下载查看

网友评论0