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

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

目录

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命令。

    带有乐观锁的事务

相关推荐
Java探秘者11 分钟前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_7869643616 分钟前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
千年死缓1 小时前
go+redis基于tcp实现聊天室
redis·tcp/ip·golang
阿维的博客日记1 小时前
图文并茂解释水平分表,垂直分表,水平分库,垂直分库
数据库·分库分表
wrx繁星点点2 小时前
事务的四大特性(ACID)
java·开发语言·数据库
小小娥子3 小时前
Redis的基础认识与在ubuntu上的安装教程
java·数据库·redis·缓存
DieSnowK3 小时前
[Redis][集群][下]详细讲解
数据库·redis·分布式·缓存·集群·高可用·新手向
-XWB-3 小时前
【MySQL】数据目录迁移
数据库·mysql
老华带你飞3 小时前
公寓管理系统|SprinBoot+vue夕阳红公寓管理系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·课程设计
我明天再来学Web渗透4 小时前
【hot100-java】【二叉树的层序遍历】
java·开发语言·数据库·sql·算法·排序算法