HyperLogLog操作命令、Geospatial操作命令、发布订阅命令
admin
2024-04-19 18:03:55
0

目录

  • HyperLogLog操作命令
    • pfadd
    • pfcount
    • pfmerge
  • Geospatial 操作命令
    • geoadd
    • geopos
    • geodist
    • geohash
    • georadius
    • georadiusbymember
  • 发布订阅命令
    • subscribe
    • psubscribe
    • publish
    • unsubscribe
    • punsubscribe
    • pubsub
      • pubsub channels
      • pubsub numsub
      • pubsub numpat

HyperLogLog操作命令

​ 该数据类型可以简单理解为一个 set 集合,集合元素为字符串。但实际上HyperLogLog 是一种基数计数概率算法,通过该算法可以利用极小的内存完成独立总数的统计。其所有相关命令都是对这个“set 集合”的操作。

​ HyperLogLog 可对数据量超级庞大的日志数据做不精确的去重计数统计。当然,这个不精确的度在 Redis 官方给出的误差是 0.81%。这个误差对于大多数超大数据量场景是被允许的。对于平台上每个页面每天的 UV 数据,非常适合使用 HyperLogLog 进行记录。(UV数据是唯一访问者,比如计算ip访问的总数,PV数据是求访问量用户每次刷新即被计算一次)

pfadd

格式:PFADD key element [element …]

功能:将任意数量的元素添加到指定的 HyperLogLog 集合里面。如果内部存储被修改了返回 1,否则返回 0。

pfcount

格式:PFCOUNT key [key …]

功能:该命令作用于单个 key 时,返回给定 key 的 HyperLogLog 集合的近似基数;该命令作用于多个 key 时,返回所有给定 key 的 HyperLogLog 集合的并集的近似基数;如果key 不存在,则返回 0。

pfmerge

格式:PFMERGE destkey sourcekey [sourcekey …]

功能:将多个 HyperLogLog 集合合并为一个 HyperLogLog 集合,并存储到 destkey 中,合并后的 HyperLogLog 的基数接近于所有 sourcekey 的 HyperLogLog 集合的并集。

Geospatial 操作命令

该类型本质上仍是一种集合,只不过集合元素比较特殊,是一种由三部分构成的数据结构,这种数据结构称为空间元素:

经度:longitude。有效经度为[-180,180]。正的表示东经,负的表示西经。

纬度:latitude。有效纬度为[-85.05112878,85.05112878]。正的表示北纬,负的表示南纬。

位置名称:为该经纬度所标注的位置所命名的名称,也称为该 Geospatial 集合的空间元素名称。

geoadd

格式:GEOADD key longitude latitude member [longitude latitude member …]

功能:将一到多个空间元素添加到指定的空间集合中。

说明:当用户尝试输入一个超出范围的经度或者纬度时,该命令会返回一个错误。

geopos

格式:GEOPOS key member [member …]

功能:从指定的地理空间中返回指定元素的位置,即经纬度。

说明:因为该命令接受可变数量元素作为输入,所以即使用户只给定了一个元素,命令也会返回数组。

geodist

格式:GEODIST key member1 member2 [unit]

功能:返回两个给定位置之间的距离。其中 unit 必须是以下单位中的一种:

  • m :米,默认

  • km :千米

  • mi :英里

  • ft:英尺

说明:如果两个位置之间的其中一个不存在, 那么命令返回空值。另外,在计算距离时会假设地球为完美的球形, 在极限情况下, 这一假设最大会造成 0.5% 的误差。

geohash

格式:GEOHASH key member [member …]

功能:返回一个或多个位置元素的 Geohash 值。

说明:GeoHash 是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串。该值主要用于底层应用或者调试, 实际中的作用并不大。

georadius

格式:GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]

功能:以给定的经纬度为中心,返回指定地理空间中包含的所有位置元素中,与中心距离不超过给定半径的元素。返回时还可携带额外的信息:

  • WITHDIST :在返回位置元素的同时,将位置元素与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。

  • WITHCOORD :将位置元素的经维度也一并返回。

  • WITHHASH:将位置元素的 Geohash 也一并返回,不过这个 hash 以整数形式表示

命令默认返回未排序的位置元素。 通过以下两个参数,用户可以指定被返回位置元素的排序方式:

  • ASC :根据中心的位置,按照从近到远的方式返回位置元素。

  • DESC :根据中心的位置,按照从远到近的方式返回位置元素。

说明:在默认情况下, 该命令会返回所有匹配的位置元素。虽然用户可以使用 COUNT 选项去获取前 N 个匹配元素,但因为命令在内部可能会需要对所有被匹配的元素进行处理,所以在对一个非常大的区域进行搜索时,即使使用 COUNT 选项去获取少量元素,该命令的执行速度也可能会非常慢。

georadiusbymember

格式:GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]

功能:这个命令和 GEORADIUS 命令一样,都可以找出位于指定范围内的元素,但该命令的中心点是由位置元素形式给定的,而不是像 GEORADIUS 那样,使用输入的经纬度来指定中心点。

说明:返回结果中也是包含中心点位置元素的。

发布订阅命令

subscribe

格式:SUBSCRIBE channel [channel …]

功能:Redis 客户端通过一个 subscribe 命令可以同时订阅任意数量的频道。在输出了订阅了主题后,命令处于阻塞状态,等待相关频道的消息。

psubscribe

格式:PSUBSCRIBE pattern [pattern …]

功能:订阅一个或多个符合给定模式的频道。

说明:这里的模式只能使用通配符 ‘’‘’。例如,it 可以匹配所有以 it 开头的频道,像 it.news、it.blog、it.tweets 等;news.*可以匹配所有以 news.开头的频道,像 news.global.today、news.it 等。

publish

格式:PUBLISH channel message

功能:Redis 客户端通过一条 publish 命令可以发布一个频道的消息。返回值为接收到该消息的订阅者数量。

unsubscribe

格式:UNSUBSCRIBE [channel [channel …]]

功能:Redis 客户端退订指定的频道。

说明:如果没有频道被指定,也就是一个无参数的 UNSUBSCRIBE 命令被执行,那么客户端使用 SUBSCRIBE 命令订阅的所有频道都会被退订。在这种情况下,命令会返回一个信息,告知客户端所有被退订的频道。

punsubscribe

格式:PUNSUBSCRIBE [pattern [pattern …]]

功能:退订一个或多个符合给定模式的频道。

说明:这里的模式只能使用通配符 *。如果没有频道被指定,其效果与 SUBSCRIBE 命令相同,客户端将退订所有订阅的频道。

pubsub

格式:PUBSUB [argument [argument …]]

功能:PUBSUB 是一个查看订阅与发布系统状态的内省命令集,它由数个不同格式的子命令组成,下面分别介绍这些子命令的用法。

pubsub channels

格式:PUBSUB CHANNELS [pattern]

功能:列出当前所有的活跃频道。活跃频道指的是那些至少有一个订阅者的频道。

说明:pattern 参数是可选的。如果不给出 pattern 参数,将会列出订阅/发布系统中的所有活跃频道。如果给出 pattern 参数,那么只列出和给定模式 pattern 相匹配的那些活跃频道。pattern 中只能使用通配符*。

pubsub numsub

格式:PUBSUB NUMSUB [channel-1 … channel-N]

功能:返回给定频道的订阅者数量。不给定任何频道则返回一个空列表。

pubsub numpat

格式:PUBSUB NUMPAT

功能:查询当前 Redis 所有客户端订阅的所有频道模式的数量总和

相关内容

热门资讯

如何选 长春黄金回收正规经营主... 面对长春黄金回收市场的各类乱象,消费者在选择服务提供方时需要做好多方面的甄别。 当前本地黄金变现需...
水井坊上半年预亏622万元,渠... 蓝鲸新闻7月14日讯(记者朱欣悦)7月14日,水井坊(600779.SH)披露半年度业绩预告,上半年...
先进封测+存储+GPU/CPO... A股收盘 【沪指涨1.36% PCB方向掀涨停潮】四大股指今日集体收涨,沪指涨1.36%,深成指涨2...
消息称DeepSeek筹备IP... IT之家 7 月 15 日消息,据彭博社昨日援引知情人士消息,中国人工智能公司 DeepSeek(深...
智仑超纯完成B轮融资 2026年7月13日,智仑新材料科技(西安)有限公司(简称“智仑超纯”)宣布完成B轮融资。此次融资将...
资金动向 | 北水净买入港股近... 7月14日,南下资金今日净买入港股109.97亿港元。 其中:净买入智谱29.89亿、网易28.7亿...
「新消费观察」新鲜零食赛道升温... 本报(chinatimes.net.cn)记者周梦婷 北京报道 这个夏天,新鲜零食在悄然间热闹了起来...
中信建投证券预计上半年净利润同... 上证报中国证券网讯(记者 李雨琪)7月14日晚间,中信建投证券披露2026年半年度业绩预增公告称,公...
原创 七... 置业安居,地段的选择至关重要,这早已是购房界的黄金法则。然而,现实情况往往并非如此尽如人意,即使是备...
DHL报告:从内容到购买,Ti... 近日,DHL发布了2026年全球电商趋势报告。报告显示,TikTok已在多个重点市场成为主流购物渠道...
大量9系SUV车主吐槽空间不足... 快科技7月14日消息,小米创办人雷军发文表示,团队调研了大量9系SUV车主,大家对空间设计存在不少槽...
时隔仅11天,国内规模最大ET... 界面新闻记者 | 江怡曼 短短十余天内,全市场规模最大ETF的“宝座”两度易主,从宽基指数产品到黄...
苹果把OpenAI告上法庭:真... 2024年,苹果把ChatGPT请进了iPhone。 2026年,苹果把OpenAI告上了法庭。 两...
土耳其拟加入加拿大牵头的防务银... 新华社北京7月14日电 一名土耳其官员13日告诉路透社,土方已通报加拿大,将作为创始成员加入加方牵头...
视频丨VR、实景AI加速落地 ... 国家统计局近日发布数据显示,2025年全年,我国的文化产业营收突破20万亿元,数字驱动的文化新业态引...
把上海外环盘做成“市区爆款”,... 2026年7月9日,由北京中指信息技术研究院主办,中国房地产指数系统、中国物业服务指数系统承办的“中...
美银力挺AMD(AMD.US)... 智通财经APP获悉,美国银行在半导体市场周度展望报告中表示,由于服务器处理器需求“异常旺盛”,AMD...
机器工作,人类生活:财富、劳动... 来源:FT中文网 丹麦投资人特维德谈新作《超级趋势:机器工作,人类生活》。他认为大规模人类劳动将不...
原创 金... 文章里把这一轮下跌的原因先归到美联储头上。 说是新任主席沃什6月议息会后放了信号,年末利率中值抬到3...