介绍 redis-Bit-Map 的相关命令和常用场景
来源:互联网 发布:广数螺纹编程格式 编辑:程序博客网 时间:2024/06/04 19:31
介绍
redis-Bit-Map
的相关命令和常用场景
相关命令(5种)
SETBIT key offset value
设置 key offset 偏移位置 value 0 或 1
GETBIT key offset
获取置 key offset 偏移位置 的 value 返回 0 或 1
BITCOUNT key [start end]
获取 key 的 value 为1 的总数 , [start end]为可选参数,可以设置范围。这里需要注意的是,start 和 end 中的使用的是byte 而set 和 get 使用的 bit ,是 8:1 的关系。
BITOP OP destkey srckey1 srckey2 srckey3 ... srckeyN
这里
OP
可以设置为AND(交集)
,OR(并集)
,XOR(异或)
和NOT(取非)
,destkey
是key
的名称 ,srckey1-N
是 用于计算的bitmapkey
值 。BITPOS key bit [start] [end]
返回设置为1或0的一个字符串中的第一个点的位置
常用场景
1 产品评论总数,点赞数统计
$redis = new redis();
$redisHost = $this->GetRedisHttpLink();
$redis->connect($redisHost, 6379);
$key = 'comment'.$data['KeyNO'].$data['CommentTypeID'];
$uid = $data['UID'];
$redis->setBit($key, $uid, 1);
echo $redis->getBit($key, $uid ) . PHP_EOL;
echo '总评论次数为:' . $redis->bitCount($key);exit();2 活跃用户统计
$key1 = 'Userlogin2017-08-01';$key2 = 'Userlogin2017-08-02';$key3 = 'Userlogin2017-08-03';##分别记录下 8月1号 和 8月2号 的活跃用户$redis->setBit($key1, $uid, 1);$redis->setBit($key2, $uid, 1);##进行bitmap 计算统计1号2号都活跃的用户$redis->bitOp('AND','8182',$key1,$key2);$both_active = $redis->bitCount('8182');##进行bitmap 计算统计1号 或 2号 或 3号 活跃的用户$redis->bitOp('OR','818283',$key1,$key2,$key3);$other_active = $redis->bitCount('818283');
Bit-Map 常用在数量大,且记录值 与操作本身无关,与结果有关的事件。如:点赞,数目统计,活跃值,与结果有关,即可以用 0 或 1 代表结果统计的事件。就类似与古人 打绳结 来记录时间,也可以打绳结 来记录 点赞 这一类事件。
- 介绍 redis-Bit-Map 的相关命令和常用场景
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis的数据结构和使用场景介绍
- bit-map和Bloom_Filter介绍
- Redis的简单介绍与相关命令
- Redis介绍和使用场景
- redis介绍和使用场景
- Redis的使用场景介绍
- redis常用操作数据命令及场景
- redis的相关操作和命令
- Redis的相关命令
- git 常用场景的命令
- 记忆的窍门
- 新手学C++多线程编程(10)类行为和线程处理
- zigbee协议栈z-satack解读。
- [微信小程序]鼠标事件
- Js中非构造函数的继承(深拷贝浅拷贝)
- 介绍 redis-Bit-Map 的相关命令和常用场景
- Codeforces835D-Palindromic characteristics(DP)
- MongoDB 聚合操作
- imx6 Linux Kernl添加spidev的设备节点
- maven 配置windows环境变量
- 【HDU 6060 RXD and dividing】+ DFS
- 分清数学库与浮点运算
- Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$Ac
- 【51Nod】1085