zoukankan      html  css  js  c++  java
  • [视频教程] redis中的bit运用统计用户在线天数

    位运算在redis中非常的方便使用,并且理由利用这个可以实现很多特殊的功能。这也迫使我去研究更多的redis提供的函数,只有研究的多,思路才能够更加开放。今天我就对strings下面的几个函数进行了测试,也收获颇丰。

    使用setBit和bitCount可以实现用户活跃天数的统计,大体的思路如下:
    我们网站今天第一天上线,某用户taoshihan,今天有访问那么我就记一下,网站第一天,taoshihan访问1;
    网站第二天,taoshihan访问1;网站第80天,taoshihan访问1;其余时间没有访问过,那么我们统计得出taoshihan活跃天数为3。

    使用代码体现为如下,具体解释可以查看视频:
    https://www.bilibili.com/video/av70912075/

    //使用setBit和bitCount实现用户在线天数的统计
    $redis->set("taoshihan",'@');//@符号的二进制形式为 01000000
    $redis->setBit("taoshihan",1,1);
    $redis->setBit("taoshihan",2,1);
    $redis->setBit("taoshihan",80,1);
    $v=$redis->bitCount("taoshihan");
    var_dump($v);//输出3

    <?php
    $redis=new Redis();
    $redis->connect('127.0.0.1', 6379);
    
    //append-将值附加到键
    $redis->set('name','taoshihan');
    $redis->append('name',' very good');
    $v=$redis->get('name'); 
    var_dump($v);//string(19) "taoshihan very good"
    
    //对字符串二进制位为1的个数进行统计
    $redis->set('name','a');
    $v=$redis->bitCount('name');
    var_dump($v);//int(3)
    
    //对多个字符串进行位运算
    $redis->set("test1",'a');
    $redis->set("test2",'b');
    $redis->bitop("OR",'restkey','test1','test2');
    $v=$redis->get('restkey');
    var_dump($v);//string(1) "c"
    
    //更改字符串的指定位
    $redis->set("name",'a');//a的二进制形式 01100001
    $redis->setBit("name",3,1);//从左到右数,从0开始
    $v=$redis->get("name");
    var_dump($v);//输出q,二进制为01110001
    
    //使用setBit和bitCount实现用户在线天数的统计
    $redis->set("taoshihan",'@');//@符号的二进制形式为 01000000
    $redis->setBit("taoshihan",1,1);
    $redis->setBit("taoshihan",100,1);
    $redis->setBit("taoshihan",150,1);
    $v=$redis->bitCount("taoshihan");
    var_dump($v);//输出3

  • 相关阅读:
    DUDU,发回密码或者登陆系统一定有问题
    柱状图改进版
    辞职了......
    (转)密码学领域重大发现:山东大学王小云教授成功破解MD5
    用C# and GDI+画柱状图(可以从数据库里导出数据画)
    今天,在苏州落户了.
    在Windows2000Server(CPUP4)系统下安装Oracle时一点小问题
    毕业后,两个月,第二家公司上班第一天
    Ubuntu10.04窗口风格改为windows风格的方法
    MYSQL修改密码并设置允许远程访问
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11657747.html
Copyright © 2011-2022 走看看