《Redis使用手册之HyperLog与地理坐标应用》

2024-05-02 10:28

本文主要是介绍《Redis使用手册之HyperLog与地理坐标应用》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Redis使用手册之HyperLog与地理坐标》

目录

      • **《Redis使用手册之HyperLog与地理坐标》**
      • **PFADD:对集合元素进行计数**
      • **PFCOUNT:返回集合的近似基数**
      • **PFMERGE:计算多个HyperLogLog的并集**
      • **GEOADD:存储坐标**
      • **GEOPOS:获取指定位置的坐标**
      • GEODIST:计算两个位置之间的直线距离**
      • **GEORADIUS:查找指定坐标半径范围内的其他位置**
      • **GEORADIUSBYMEMBER:查找指定位置半径范围内的其他位置**
      • **GEOHASH:获取指定位置的Geohash值**
      • **事务**
      • **带有乐观锁的事务**

PFADD:对集合元素进行计数

127.0.0.1:6379> pfadd hyperlog a b c
(integer) 1
127.0.0.1:6379> pfadd hyperlog a
(integer) 0
127.0.0.1:6379> pfadd hyperlog d
(integer) 1

PFADD:对集合元素进行计数 PFADD hyperlog element [element …] - 如果给定的所有元素都已经进行过计数,那么PFADD命令将返回0,表示HYperLog-log计算出的近似基础没有发生变化。 - 如果给定的元素中出现了至少一个之前没有进行过计数的元素,导致Hyperloglog计算的近似基础发生了变化,那么PFADD命令将返回1。

PFADD:对集合元素进行计数

PFCOUNT:返回集合的近似基数

127.0.0.1:6379> pfcount hyperlog
(integer) 4
127.0.0.1:6379> pfadd hyperlog1 d e f
(integer) 1
127.0.0.1:6379> pfcount hyperlog hyperlog1
(integer) 6

PFCOUNT:返回集合的近似基础 PFCOUNT hyperloglog [hyperloglog …] 返回并集的近似基数

PFCOUNT:返回集合的近似基数

PFMERGE:计算多个HyperLogLog的并集

127.0.0.1:6379> pfadd numbers1 128 256 512
(integer) 1
127.0.0.1:6379> pfadd number2 128 256 512
(integer) 1
127.0.0.1:6379> pfadd number3 128 512 1024
(integer) 1
127.0.0.1:6379> pfmerge union-numbers numbers1 numbers2 numbers3
OK
127.0.0.1:6379> pfcount union-numbers
(integer) 3

127.0.0.1:6379> pfcount numbers1 numbers2 numbers3
(integer) 3

PFMETGE:计算多个HYperLogLog的并集 PFMERGE destination hyperloglog [hyperloglog …]

PFMERGE:计算多个HyperLogLog的并集

GEOADD:存储坐标

127.0.0.1:6379> geoadd Guangdong-citics 113.2099647 23.593675 qingyuan
(integer) 1
127.0.0.1:6379> geoadd Guangdong-citics 113 23 qingyuan
(integer) 0

GEOPOS:获取指定位置的坐标

127.0.0.1:6379> geopos Guangdong-citics qingyuan

  1. “112.99999862909317017”

    “23.00000023389439718”

GEOPOS:获取指定位置的坐标

GEOPOS:获取指定位置的坐标

GEODIST:计算两个位置之间的直线距离**

  • 127.0.0.1:6379> geodist Guangdong-citics qingyuan guangzhou
    “1949897.2806”
    127.0.0.1:6379> geodist Guangdong-citics qingyuan guangzhou km
    “1949.8973”

    GEODIST:计算两个位置之间的直线距离

    GEODIST location_set name1 name2

    指定距离的单位

    GEODIST location_set name1 name2 [unit]

    unit参数的值可以是以下单位中的任意一个:

    m——以米为单位,为默认单位

    km——千米为单位

    mi——英里为单位

    ft——英尺为单位

    GEODIST:计算两个位置之间的直线距离

GEORADIUS:查找指定坐标半径范围内的其他位置

  • 127.0.0.1:6379> GEOADD Guangdong-cities 113.2099647 23.593675 Qingyuan 113.2278442 23.1255978 Guangzhou 113.106308 23.0088312 Foshan 113.7943267 22.9761989 Dongguan 114.0538788 22.5551603 Shenzhen 113.4060288 22.5111574 Zhongshan
    (integer) 6
    127.0.0.1:6379> GEORADIUS Guangdong-cities 112.3351942 23.0586893 50 km
    (empty list or set)
    127.0.0.1:6379> GEORADIUS Guangdong-cities 112.3351942 23.0586893 100 km

    “Foshan”

    “Guangzhou”
    127.0.0.1:6379> GEORADIUS Guangdong-cities 112.3351942 23.0586893 150 km

    “Foshan”

    “Guangzhou”

    “Dongguan”

    “Qingyuan”

    “Zhongshan”
    127.0.0.1:6379> GEORADIUS Guangdong-cities 112.3351942 23.0586893 250 km

    “Zhongshan”

    “Shenzhen”

    “Foshan”

    “Guangzhou”

    “Dongguan”

    “Qingyuan”

    GEORADIUS:查找指定坐标半径范围内的其他位置

    GEORADIUS location_set longitude latitude radius unit

    location_set参数用于指定执行查找操作的位置集合。

    longitude参数和latitude参数分别用于指定中心点的经度和纬度。

    radius参数用于指定查找半径。

    unit参数用于指定查找半径的单位,与GEODIST命令中的unit参数一样,这个参数的值可以是m(米)、km(千米)、mi(英里)或者ft(英尺)中的任意一个。 返回被匹配位置与中心点之间的距离

    georadius location_set longitude latitude radius unit [WITHDIST]

    返回被匹配位置的坐标 WITHCOORD

    排序查找结果 [ASC|DESC]

    限制命令获取的位置数量 [COUNT n]

    同时使用多个可选项

    127.0.0.1:6379> GEORADIUS Guangdong-cities 112.3351942 23.0586893 250 km withdist withcoord asc count 3

    1. “Foshan”

    2. “79.1250”

      1. “113.10631066560745239”
      2. “23.00883120241353907”
    3. “Guangzhou”

    4. “91.6332”

      1. “113.22784155607223511”
      2. “23.1255982020608073”
    5. “Qingyuan”

    6. “107.3463”

      1. “113.20996731519699097”
      2. “23.59367501967128788”

    GEORADIUS:查找指定坐标半径范围内的其他位置

GEORADIUSBYMEMBER:查找指定位置半径范围内的其他位置

GEORADIUSBYMEMBER:查找指定位置半径范围内的其他位置 GEORADIUSBYMEMBER location_set name radius unit [WITHDIST] [WITHCOORD] [ASC|DESC] [COUNT n]

GEORADIUSBYMEMBER:查找指定位置半径范围内的其他位置

GEOHASH:获取指定位置的Geohash值

  • 127.0.0.1:6379> geohash Guangdong-citics qingyuan

    “ws06g7h0dy0”
    127.0.0.1:6379> geohash Guangdong-citics qingyuan Guangzhou Shenzhen

    “ws06g7h0dy0”

    (nil)

    “ws107659240”

    GEOHASH:获取指定位置的Geohash值 Geohash是一种编码格式,这种格式可以将用户给定的经度和纬度转换成单个Geohash值,也可以根据给定的Geohash值还原出被转换的经度和纬度。

    GEOHASH:获取指定位置的Geohash值用户可以通过向GEOHASH命令传入一个或多个位置来获得这些位置对应的经纬度坐标的Geohash表示:

事务

MULTI:开启事务 EXEC:执行事务 DISCARD:放弃事务

MULTI:开启事务

带有乐观锁的事务

​ MULTI:添加事务

​ EXEC:提交

  • 127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> set title “Hand in Hand”
    QUEUED
    127.0.0.1:6379> sadd fruits apple banana cherry
    QUEUED
    127.0.0.1:6379> rpush numbers 123456 789
    QUEUED

    127.0.0.1:6379> exec

    OK

    (integer) 3

    (integer) 2

    discard:取消事务

    127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> set page_count 10086
    QUEUED
    127.0.0.1:6379> set download_count 12345
    QUEUED
    127.0.0.1:6379> discard
    OK
    127.0.0.1:6379> get page_count
    (nil)

    带有乐观锁的事物

    WATCH:对键进行监视

    watch key [key …]

    127.0.0.1:6379> watch user_id_counter
    OK
    127.0.0.1:6379> multi
    OK
    127.0.0.1:6379> incr user_id_counter
    QUEUED
    127.0.0.1:6379> exec

    (integer) 152
    127.0.0.1:6379> unwatch
    OK

    通过同时使用watch命令和Redis事物,我们可以构建出一种针对被监视键的乐观锁机制,确保事物只会在被监视键没有发生任何变化的情况下执行,从而保证事物对被监视键的所有修改都是安全、正确和有效的。

    UNWATCH:取消对键的监视。

    unwatch 除了显式地执行unwatch命令之外,使用EXEC命令执行事物和使用DISCARD命令取消事物,同样会导致客户端撤销对所有键的监视,这是因为这两个命令在执行之后都会隐式地调用unwatch命令。

    带有乐观锁的事务

这篇关于《Redis使用手册之HyperLog与地理坐标应用》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/954030

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝