Redis学习之数据操作( 二 )

  • numkeys:需要聚合的集合数量,对应后面的 key [key …] 数量和
  • weights:乘法因子,默认为 1,每个给定有序集的所有成员的 score 值在传递给聚合函数(aggregation function)之前都要先乘以该因子
  • aggregate:集合函数,有 sum、min、max
  • hash 操作
    • 存储/批量存储 hash 值:hset key field value / hmset key field1 value1 field2 value2
    • 获取/批量获取 hash 值:hget key field / hmget key filed1….fieldN
    • 得到 hash 中的所有值:hgetall key
    • 测试指定 field 是否存在:hexists key field
    • 删除一个或多个哈希字段:hdel key field1 [field2]
    • 返回 hash 的所有 field:hkeys key
    • 返回指定 hash 的 field 数量:hlen key
    HyperLogLog 操作HyperLogLog 主要解决大数据应用中的非精确计数(可能多也可能少,但是会在一个合理的范围) 操作,它可以接受多个元素作为输入,并给出输入元素的基数估算值,基数指的是集合中不同元素的数量 。
    HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定的、并且是很小的 。在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数 。关于数据误差,在一个大小为 12k 的 key 所存储的 hyperloglog 集合基数计算的误差约是 0.81% 。
    因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素 。
    HyperLogLog 的这个数据结构可以非常省内存的去统计各种计数,比如注册 IP 数、每日访问 IP 数、页面实时UV 、在线用户数等 。
    • 将元素添加至 HyperLogLog :pfadd key element [element …]
    • 返回给定 HyperLogLog 的基数估算值(多个 HyperLogLog 会先对 HyperLogLog 作并集处理):pfcount key [key …]
    • 合并多个 HyperLogLog:pfmerge destkey sourcekey [sourcekey …]




    推荐阅读