经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
[视频教程] redis中的bit运用统计用户在线天数
来源:cnblogs  作者:陶士涵  时间:2019/10/12 9:25:45  对本文有异议

位运算在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

  1. <?php
  2. $redis=new Redis();
  3. $redis->connect('127.0.0.1', 6379);
  4. //append-将值附加到键
  5. $redis->set('name','taoshihan');
  6. $redis->append('name',' very good');
  7. $v=$redis->get('name');
  8. var_dump($v);//string(19) "taoshihan very good"
  9. //对字符串二进制位为1的个数进行统计
  10. $redis->set('name','a');
  11. $v=$redis->bitCount('name');
  12. var_dump($v);//int(3)
  13. //对多个字符串进行位运算
  14. $redis->set("test1",'a');
  15. $redis->set("test2",'b');
  16. $redis->bitop("OR",'restkey','test1','test2');
  17. $v=$redis->get('restkey');
  18. var_dump($v);//string(1) "c"
  19. //更改字符串的指定位
  20. $redis->set("name",'a');//a的二进制形式 01100001
  21. $redis->setBit("name",3,1);//从左到右数,从0开始
  22. $v=$redis->get("name");
  23. var_dump($v);//输出q,二进制为01110001
  24. //使用setBit和bitCount实现用户在线天数的统计
  25. $redis->set("taoshihan",'@');//@符号的二进制形式为 01000000
  26. $redis->setBit("taoshihan",1,1);
  27. $redis->setBit("taoshihan",100,1);
  28. $redis->setBit("taoshihan",150,1);
  29. $v=$redis->bitCount("taoshihan");
  30. var_dump($v);//输出3

原文链接:http://www.cnblogs.com/taoshihan/p/11657747.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号