• redis hyperloglog初探


    • 最近遇到一个很有意思的问题,如何统计一天之内30分钟内同时在线的人数峰值,我思考了两个模型,一:教师上课点名模型  2:学生相互确认签到模型,用到了集合,二叉查找树,快速定位判断,用内存换取执行时间算是勉强可以接受,但是随着数据量的增长,这两个模型捉急了,于是考虑hyperloglog算法,不懂,于是研究redis了.
    • SADD  ,向一个集合添加元素,可单个,多个,比如:sadd key1 "a" "b" c d;sadd key1 f  ,引号可以不要
    • SCARD ,统计个数 scard setname "element"
    • SDIFF  计算在A不在B的集合 sdiff setname1 setname2
    • SDIFFSTORE  同上,但是返回了结果集 sdiffstore setname1 setname2
    • SINTER  取集合的交集  sinter setname1 setname
    • SINTERSTORE  取集合的交集并返回结果 sinterstore setname1 setname2
    • SISMEMBER   判断一个成员是否在集合中 sismember  setname "element"
    • SMEMBERS    返回集合的所有成员 smembers setname
    • SMOVE    将一个成员从一个集合移动到另一个集合  smove set1 set2 "element1"
    • SPOP  随机弹出一个元素 ,不是栈  ,spop setname
    • SRANDMEMBER  同上,但不删除
    • SREM  //删除栈顶元素
    • SSCAN //目前版本未知
    • SUNION //联接,其实就是集合的并,sunion setname1 setname2
    • SUNIONSTORE //同上,但是返回了结果
    • 在尝试了官网的demo以后,发现这个东西居然把集合思想如此自然添加给了字符串,特别适合文本匹配,论文查重,大数据处理
    • 注:在程序中,我们只需要模仿以上行为,用command sentence翻译以上命令并传递给特定的select(redis中叫做redisCommand())函数即可
    • ,http://redis.io/commands/sunionstore(原文链接),接下来通读源码
  • 相关阅读:
    SQL SERVER 2005 行转列
    为什么jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON
    Silverlight 布局控件
    python socket connection
    linux下缓存的查看/修改
    openstackflat 网络问题
    Fail to start neutronserver
    copy module
    python ConfigParser
    itertools 介绍
  • 原文地址:https://www.cnblogs.com/aobama/p/4362682.html
Copyright © 2020-2023  润新知