zoukankan      html  css  js  c++  java
  • redis有序集合的一个应用

    一.需求


    记录用户uid和上次操作时间;并清除5分钟以前的数据.用redis的一个key实现.本打算用hash,但hash类型在过期5分钟以前的数据时颇为麻烦.

    二.代码实现

    class LastLoginService
    {
        const CACHE_KEY_FIVE = 'last.login.five';
        const LAST_MINUTE_FIVE = 5;
    
        /**
         * @param $user_id
         */
        public static function loginAtFive($user_id)
        {
            self::clearExpired();
            Redis::zadd(self::CACHE_KEY_FIVE, time(), $user_id);
        }
    
        /**
         * 返回user_id数组,按上次操作时间,降序排
         */
        public static function getAllFiveOnline()
        {
            self::clearExpired();
            return Redis::zrevrange(self::CACHE_KEY_FIVE, 0, -1, 'WITHSCORES');
        }
    
        /**
         * 清除过期数据
         */
        public static function clearExpired()
        {
            Redis::zremrangebyscore(self::CACHE_KEY_FIVE, 0, time() - self::LAST_MINUTE_FIVE * 60);
        }
    }
    

      

  • 相关阅读:
    JavaScript学习笔记之数组(一)
    Ajax与CORS通信
    JSONP跨域
    JavaScript原型与原型链
    CSS布局套路
    爱奇艺的自制节目
    2019.3.6错误经验
    Kickdown UVA
    ASP.NET Web
    C# Windows
  • 原文地址:https://www.cnblogs.com/itfenqing/p/7244303.html
Copyright © 2011-2022 走看看