《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

相关文章

Redis 命令详解与实战案例

《Redis命令详解与实战案例》本文详细介绍了Redis的基础知识、核心数据结构与命令、高级功能与命令、最佳实践与性能优化,以及实战应用场景,通过实战案例,展示了如何使用Redis构建高性能应用系统... 目录Redis 命令详解与实战案例一、Redis 基础介绍二、Redis 核心数据结构与命令1. 字符

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

SpringBoot18 redis的配置方法

《SpringBoot18redis的配置方法》本文介绍在SpringBoot项目中集成和使用Redis的方法,包括添加依赖、配置文件、自定义序列化方式、使用方式、实际使用示例、常见操作总结以及注意... 目录一、Spring Boot 中使用 Redis1. 添加依赖2. 配置文件3. Redis 配置类

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

Redis中群集三种模式的实现

《Redis中群集三种模式的实现》Redis群集有三种模式,分别是主从同步/复制、哨兵模式、Cluster,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1. Redis三种模式概述2、Redis 主从复制2.1 主从复制的作用2.2 主从复制流程2

Redis的安全机制详细介绍及配置方法

《Redis的安全机制详细介绍及配置方法》本文介绍Redis安全机制的配置方法,包括绑定IP地址、设置密码、保护模式、禁用危险命令、防火墙限制、TLS加密、客户端连接限制、最大内存使用和日志审计等,通... 目录1. 绑定 IP 地址2. 设置密码3. 保护模式4. 禁用危险命令5. 通过防火墙限制访问6.

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

Redis中删除策略的几种实现方式

《Redis中删除策略的几种实现方式》本文详细介绍了Redis的过期键删除策略和内存淘汰策略,过期键删除策略包括定时删除、惰性删除和定期删除,具有一定的参考价值,感兴趣的可以了解一下... 目录前言一、设计背景:为什么需要删除策略?二、第一类:过期键的 3 种核心删除策略1. 定时删除(Timed Dele

Spring Boot整合Redis注解实现增删改查功能(Redis注解使用)

《SpringBoot整合Redis注解实现增删改查功能(Redis注解使用)》文章介绍了如何使用SpringBoot整合Redis注解实现增删改查功能,包括配置、实体类、Repository、Se... 目录配置Redis连接定义实体类创建Repository接口增删改查操作示例插入数据查询数据删除数据更