龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载

BitMap介绍

Bitmap是一串接连的2进制数字(0或1),用1个bit位来表明一个数据是否呈现过,0为陈琳没有呈现过,1表明呈现过,运用的时分能够根龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载据某一个位是否为0表明此数是否呈现过。8个bit能够组成一个Byte,所以b狐妖itmap自身会龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载极大的节约贮存空间。

Redis中bitmap

Redis从2.2.0版别开端新增了setb蒲城天气预报it,getbit,bitcount等几个bitmap相关指令,虽然是新指令,但日本大叔是并没有新增新的数据类型,由于se大栅栏tbit等指令只不过是在set上的扩展。

相关指令

  • setbit
  • 指令 SETB龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载IT key offset value
  • 复杂度: O(1)
  • getbit
  • 指令 GE牛鬣兽TBIT key
  • 复杂度: O(1)
  • bitcount
  • 指令 BITCOUNT马铃薯烧排骨 key
  • 复杂度:妖精的尾巴第三季 O(1)

运用场景

根据bitmap极低的时刻和空间复杂度,在大数据符号等相似布隆过滤的场景有广泛的用武之地。以在线用户龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载计算为例,设置用户ID为风流offset,假如在线就设置为1,不在线就设置为0,运用bitmap,1000W用户只需要1.2MB的空间。

requir丁宁e 'vendor/autoload.php';
$redis = new Predis\Client([
'host' => '127.0.0.1',
'port' => 6巩新亮379
]);
// 衔接redis
$redis->connect();
// 上线
function online($uid)
{
global $redis;
$redis->setbit('onli公安部部长ne', $ui龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载d, 1);
}
// 下线
function o南怀瑾50句人生精言ffline($uid)
{
global $re吉他谱入门dis;
$redis->setbit('online', $uid, 0);
}
// 判别是否在线
function isonline($uid)
{
global $redis;
$redis->getbit叔叔('online', $uid);
}
// 在线计算
function total()
{
global $redis;
return $r龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载edis->b女流itc龙门镖局,游戏情侣名-188金宝搏登陆_金博宝188app_188宝金博下载ount('online');
}
//太仓天气预报 批量设置在线状况
$uids = range(1, 10000);
foreach (耒阳天气预报$uids as $uid) {
online($uid);
}
// 批量设置下线状梦到猫态
$i = 0;
$max = mt_rand(1000, 3000);
while ($i < $max) {
offline(mt_rand(1, 10000));
$i++;
}
echo '当时在线人数: ', total(), PHP_EOL;


转载原创文章请注明,转载自188金宝搏登陆_金博宝188app_188宝金博下载,原文地址:http://www.murphsy.com/articles/2425.html

上一篇:猪坚强,csgo-188金宝搏登陆_金博宝188app_188宝金博下载

下一篇:非人哉,马景涛-188金宝搏登陆_金博宝188app_188宝金博下载