[视频教程] redis中的bit运用统计用户在线天数
2023-02-18 15:41:44 时间
位运算在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
相关文章
- [MySQL] 解决Error 1698: Access denied for user 'root'@'localhost'
- [日常] 前端资源测试机上忽略版本号的的nginx配置
- [PHP] PHP PDO与mysql的连接单例防止超时情况处理
- [PHP] 使用Socket提供Http服务
- [PHP] 实现路由映射到指定控制器
- [PHP] 命令行执行整合pathinfo模拟定时任务
- [PHP] 自定义错误处理
- [Php] windows下使用composer出现SHA384 is not supported by your openssl extension
- [PHP] url的pathinfo模式加载不同控制器的实现
- [PHP] 自动加载的实现
- [PHP] 新版本PHP7.4与新版本MySQL8认证问题
- [PHP] PHP请求Socket接口测试
- [PHP] error_reporting(0)可以屏蔽Fatal error错误
- [PHP] 读取大文件并显示
- [PHP] PDO对象与mysql的连接超时
- [PHP] time_wait与长连接短连接
- [PHP] Ubuntu快速安装起PHP7.4
- [PHP] CentOS下搭建下PHP的运行环境
- [日常] 修复了grub引导问题
- [MySQL] docker下安装使用mysql配置主从复制