REDIS用户登录信息统计

在线人数统计

  • redis有序集合:可以同时存储在线的用户和用户上线时间,能够执行非常多的聚合计算,但是消耗的内存也是非常可观的
  • redis集合:相对有序集合,所消耗的内存要小些,但是随着用户量的增多,消耗内存也处于增加状态
  • hyperloglog:无论统计多少在线用户,消耗的内存都是12K,但是只能给出在线用户的统计信息,无法获取准确的在线用户名单。(++redis hyperloglog是用来做基数统计的算法,优点是,在输入元素的数量或者体积非常非常大的时候,计算基数所需要的空间总是固定的、并且很小的。每个hyperloglog键只需要花费12KB内存,就可以计算将近2^64个不同元素的基数++)
thinkPHP利用redis存储用户登录标记状态
$redis->pfAdd('mlogin_0807', array($ms['id']));

$redis->pfcount('mlogin_0807');
  • 位图bitmap:在尽可能节省内存空间的情况下,记录在线用户情况,而且能做一定的聚合运算
$redis->setBit('mlogin_'.date("Y-m-d"),$ms['id'],1);

$redis->bitcount('mlogin_'.date("Y-m-d"));

redis-cli
auth mypawd
info
在这里插入图片描述[

发布了62 篇原创文章 · 获赞 11 · 访问量 8102

猜你喜欢

转载自blog.csdn.net/u013252962/article/details/98735137