介绍 redis-Bit-Map 的相关命令和常用场景
2017-08-02 10:42
483 查看
介绍
设置 key offset 偏移位置 value 0 或 1
获取置 key offset 偏移位置 的 value 返回 0 或 1
获取 key 的 value 为1 的总数 , [start end]为可选参数,可以设置范围。这里需要注意的是,start 和 end 中的使用的是byte 而set 和 get 使用的 bit ,是 8:1 的关系。
这里
返回设置为1或0的一个字符串中的第一个点的位置
2 活跃用户统计
Bit-Map 常用在数量大,且记录值 与操作本身无关,与结果有关的事件。如:点赞,数目统计,活跃值,与结果有关,即可以用 0 或 1 代表结果统计的事件。就类似与古人 打绳结 来记录时间,也可以打绳结 来记录 点赞 这一类事件。
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常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis介绍及常用命令
- Redis基础、高级特性与性能调优-Redis的数据结构和相关常用命令
- Redis常用命令之键值相关
- Redis介绍及常用命令
- Redis介绍安装及常用命令
- redis常用操作数据命令及场景
- redis 个人理解和常用命令以及应用场景
- redis 介绍和常用命令