首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

redis常用命令和数据类型

,则都不会创建成功 设置获取指定范围内 设置并且指定过期时间 获取原来,并设置新 二、list(列表)类型 操作list命令,自己看吧https://www.runoob.com...语法: geoadd key 经度 纬度 地名 经度 纬度 地名 ... ... 2、geopos:获取地理位置坐标(经度纬度) geopos key 地名 3、geodist:计算两个位置之间距离...georadius 以给定纬度为中心, 返回键包含位置元素当中, 与中心距离不超过给定最大距离所有位置元素 georadius key 经度 纬度 半径 单位 [WITHCOORD] [WITHDIST...georadiusbymember GEORADIUS 命令一样, 都可以找出位于指定范围内元素, 但是 georadiusbymember 中心点是由给定位置元素决定, 而不是使用经度纬度来决定中心点...二、Bitmaps 用来统计用户是否访问过网站,访问为1,没有为0 详解redisbitmap亿级项目中应用 设置setbit:设置Bitmaps某个偏移量(0或1),offset从0

85410

redis | 九、redis之Geospatial

sorted set使用一种称为Geohash技术进行填充。经度纬度位是交错,以形成一个独特52位整数....从key里返回所有给定位置元素位置(经度纬度)。...返回 GEOPOS 命令返回一个数组, 数组每个项都由两个元素组成:第一个元素为给定位置元素经度, 而第二个元素则为给定位置元素纬度。 当给定位置元素不存在时, 对应数组项为空。...返回 没有给定任何 WITH 选项情况下, 命令只会返回一个像 [“New York”,”Milan”,”Paris”] 这样线性(linear)列表。...以给定纬度为中心, 找出某一半径元素 Redis GEOADD 命令 将指定地理空间位置(纬度经度、名称)添加到指定key Redis GEORADIUSBYMEMBER 命令 找出位于指定范围内元素

62820
您找到你想要的搜索结果了吗?
是的
没有找到

使用Redis实现附近的人及打车服务

当用户登录应用时,或者保持用户登录后用户使用应用时,客户端是可以时刻获取用户位置信息(前提是用户要开启位置获取权限),客户端获取到最新地理位置后,上传到后端服务器进行更新。...这就要用到GEO类型GeoHash编码。 工作原理 sorted set 使用一种称为 Geohash 技术进行填充。经度纬度位是交错,以形成一个独特 52 位整数....,把经度116.37定位在[112.5, 123.75]这个区间,得到经度5位编码:11010 对纬度编码方式,经度一样,只是纬度范围[-90,90],如对纬度39.86编码过程...字符串越长,表示范围越精确。 GEOPOS 从key里返回所有给定位置元素位置(经度纬度)。...范围可使用如下单位: 在给定以下可选项时, 命令会返回额外信息: WITHDIST: 返回位置元素同时, 将位置元素与中心之间距离也一并返回。

1.1K20

Redis实现附近的人

当用户登录应用时,或者保持用户登录后用户使用应用时,客户端是可以时刻获取用户位置信息(前提是用户要开启位置获取权限),客户端获取到最新地理位置后,上传到后端服务器进行更新。...字符串越长,表示范围越精确。 ? GEOPOS 从key里返回所有给定位置元素位置(经度纬度)。...GEORADIUS 使用输入经度纬度来决定中心点 指定成员位置被用作查询中心 ?...工作原理 sorted set 使用一种称为 Geohash 技术进行填充。经度纬度位是交错,以形成一个独特 52 位整数....当在社交网站其他大多数需要查询半径应用中使用时,这些偏差都不算问题。但是,最坏情况下偏差可能是 0.5%,所以一些地理位置很关键应用还是需要谨慎考虑。 代码实战 更新坐标 ?

71020

Redis 实战篇:Geo 算法教你邂逅附近女神

” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内用户就是我们想要邂逅「附近的人」。...「宅男」登陆 app获取「心动女生」时候,app根据「宅男」纬度查找附近「女神」。 获取到位置符合「女神」ID 列表后,再从数据库获取 ID 对应「女神」信息返回用户。...” 思路对了,为了实现对经纬度比较,Redis 采用业界广泛使用 GeoHash 编码,分别对经度纬度编码,最后再把经纬度各自编码组合成一个最终编码。...进行第一次二分区时,经度范围[-180,180]会被分成两个子区间:[-180,0) [0,180](我称之为左、右分区)。 此时,我们可以查看一下要编码经度落在了左分区还是右分区。...一个地图应用,车数据、餐馆数据、人数据可能会有百万千万条,如果使用 Redis Geo 数据结构,它们将全部放在一个 zset 集合

1.5K10

Redis 实战篇:通过 Geo 类型实现附近的人邂逅女神

” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内用户就是我们想要邂逅「附近的人」。 将经纬度存储到 MySQL: ?...「宅男」登陆 app获取「心动女生」时候,app根据「宅男」纬度查找附近「女神」。 获取到位置符合「女神」ID 列表后,再从数据库获取 ID 对应「女神」信息返回用户。...” 思路对了,为了实现对经纬度比较,Redis 采用业界广泛使用 GeoHash 编码,分别对经度纬度编码,最后再把经纬度各自编码组合成一个最终编码。...进行第一次二分区时,经度范围[-180,180]会被分成两个子区间:[-180,0) [0,180](我称之为左、右分区)。 此时,我们可以查看一下要编码经度落在了左分区还是右分区。...一个地图应用,车数据、餐馆数据、人数据可能会有百万千万条,如果使用 Redis Geo 数据结构,它们将全部放在一个 zset 集合

1.3K20

Redis 实战篇:通过 Geo 类型实现附近的人邂逅女神

” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内用户就是我们想要邂逅「附近的人」。...「宅男」登陆 app获取「心动女生」时候,app根据「宅男」纬度查找附近「女神」。 获取到位置符合「女神」ID 列表后,再从数据库获取 ID 对应「女神」信息返回用户。...” 思路对了,为了实现对经纬度比较,Redis 采用业界广泛使用 GeoHash 编码,分别对经度纬度编码,最后再把经纬度各自编码组合成一个最终编码。...进行第一次二分区时,经度范围[-180,180]会被分成两个子区间:[-180,0) [0,180](我称之为左、右分区)。 此时,我们可以查看一下要编码经度落在了左分区还是右分区。...一个地图应用,车数据、餐馆数据、人数据可能会有百万千万条,如果使用 Redis Geo 数据结构,它们将全部放在一个 zset 集合

1.1K50

Redis除了五大数据类型,还有特殊数据类型!

指令含义:将指定地理空间位置(纬度经度、名称)添加到指定key。...这些数据将会存储到Zset,这样目的是为了方便使用GEORADIUS或者GEORADIUSBYMEMBER命令对数据进行半径查询等操作。 该命令采用标准格式参数x,y,所以经度必须在纬度之前。...指令含义:从key里返回所有给定位置元素位置(经度纬度) 因为GEOPOS命令接受可变数量位置元素作为输入,所以即使用户只给定了一个位置元素,命令也会返回数组回复。...命令一样,都可以找出位于指定范围内元素,但是GEORADIUSBYMEMBER中心点是由给定位置元素决定,而不是像GEORADIUS那样,使用输入经度纬度来决定中心点指定成员位置被用作查询中心...(字符串)offsetbit

19930

python练习题(3)——地球数据计算

Python作为一门功能强大且易学编程语言,为我们提供了处理地球数据优秀工具技术。本文中,我们将探索一道关于地球数据Python程序练习题,通过实践应用,发现Python编程魅力。...编程练习有助于我们更深入地理解Python各种功能概念,同时帮助我们发现纠正在实践可能犯错误。只有实际应用,我们才能真正体会到编程乐趣挑战。...地球半径是6371千米,假设地球是一个规则球体,编写程序完成以下计算并输出结果,结果保留2位小数。π引用math库常数pi。...我们可以使用地球平均半径约为6371公里来简化问题。 例如,给定点A(纬度:40.7128,经度:-74.0060)点B(纬度:34.0522,经度:-118.2437),计算它们之间距离。...本文Python程序练习题涉及地球数据计算,通过实践应用,我们将探索如何使用Python编程计算地球上表面积,体积,赤道长度等。

32210

利用RedisGeo功能实现查找附近位置

GEO相关命令如下: Redis 命令 描述 GEOHASH 返回一个或多个位置元素 Geohash 表示 GEOPOS 从 key 里返回所有给定位置元素位置(经度纬度) GEODIST 返回两个给定位置之间距离...GEORADIUS 以给定纬度为中心, 找出某一半径元素 GEOADD 将指定地理空间位置(纬度经度、名称)添加到指定 key GEORADIUSBYMEMBER 找出位于指定范围内元素...纬度为39.08地点tianjin经度为114.29纬度为38.02地点shijiazhuang加入key为cities:locs sorted set集合。...2.2 统计单位半径地区 我们可以借助于GEORADIUS来找出以给定纬度,某一半径所有元素。...WITHCOORD 将位置元素经度维度也一并返回,非必选。 WITHDIST 返回位置元素同时, 将位置元素与中心点距离也一并返回。 距离单位查询单位一致,非必选。

2.3K50

一口气说出 4种 LBS “附近的人” 实现方式,面试官笑了

指定精度后计算用户坐标的geoHash码,再获取到用户周边8个方位geoHash码在数据库搜索用户,最后过滤掉超出给定距离(500米内)用户。...GEOADD:将给定位置对象(纬度经度、名字)添加到指定key; GEOPOS:从key里面返回所有给定位置对象位置(经度纬度); GEODIST:返回两个给定位置之间距离; GEOHASH...,获取目标集合与中心距离不超过给定最大距离(500米内)所有位置对象,也就是“附近的人”。...WITHDIST:返回位置对象同时,将位置对象与中心之间距离也一并返回。距离单位用户给定范围单位保持一致。 WITHCOORD:将位置对象经度维度也一并返回。...zset每个元素都是一个带位置对象,元素score为通过经、纬度计算出52位geohash

1.3K30

一口气说出 4种 “附近的人” 实现方式,面试官笑了!

指定精度后计算用户坐标的geoHash码,再获取到用户周边8个方位geoHash码在数据库搜索用户,最后过滤掉超出给定距离(500米内)用户。...GEOADD:将给定位置对象(纬度经度、名字)添加到指定key; GEOPOS:从key里面返回所有给定位置对象位置(经度纬度); GEODIST:返回两个给定位置之间距离; GEOHASH...获取目标集合与中心距离不超过给定最大距离(500米内)所有位置对象,也就是“附近的人”。...WITHDIST:返回位置对象同时,将位置对象与中心之间距离也一并返回。距离单位用户给定范围单位保持一致。 WITHCOORD:将位置对象经度维度也一并返回。...每个元素都是一个带位置对象,元素score为通过经、纬度计算出52位geohash

1.9K20

Redis各种数据类型

lrange list 0 1 获取list 通过区间获取具体 取出 pop lpop 移除列表第一个元素 rpop 移除列表最后一个元素 获取下标 lindex list...返回一个或多个位置元素 Geohash 表示 Redis GEOPOS 命令 从key里返回所有给定位置元素位置(经度纬度) Redis GEODIST...,中心点是由给定位置元素决定 geoadd 添加地理位置 (经度 纬度 名称 )添加到指定key 规则 : 两级无法直接添加我们一般会下载城市数据 直接通过java一次性导入 127.0.0.1...一个坐标值 127.0.0.1:6379> geopos china:city beijing 获取指定城市经度纬度 1) 1) "116.40528291463852" 2) "39.904988422912503...通过半径来查询 georedius 以给定纬度为中心 找出某一半径元素 所有的数据应该录入到China:city 127.0.0.1:6379> georadius china:city 110

65210

利用RedisGeo功能实现查找附近

GEO相关命令如下: Redis 命令 描述 GEOHASH 返回一个或多个位置元素 Geohash 表示 GEOPOS 从 key 里返回所有给定位置元素位置(经度纬度) GEODIST 返回两个给定位置之间距离...GEORADIUS 以给定纬度为中心, 找出某一半径元素 GEOADD 将指定地理空间位置(纬度经度、名称)添加到指定 key GEORADIUSBYMEMBER 找出位于指定范围内元素...纬度为39.08地点tianjin经度为114.29纬度为38.02地点shijiazhuang加入key为cities:locs sorted set集合。...2.2 统计单位半径地区 我们可以借助于GEORADIUS来找出以给定纬度,某一半径所有元素。...WITHCOORD 将位置元素经度维度也一并返回,非必选。 WITHDIST 返回位置元素同时, 将位置元素与中心点距离也一并返回。距离单位查询单位一致,非必选。

1.4K30

Redis 新数据类型

举个例子:假如我要统计网页 UV(浏览用户数量,一天内同一个用户多次访问只能算一次),传统解决方案是使用 Set 来保存用户 id,然后统计 Set 元素数量来获取页面 UV。...例子: geopos china:city 北京 上海 重庆 # 返回经度纬度 获取两个位置之间直线距离 geodist [m|km|ft|mi] 例子: geodist...ft 表示单位为英尺 以给定纬度为中心,找出某一半径元素 georadius 距离 m|km|ft|mi 例子: georadius china:city 110...将一个或多个 HLL 合并后结果存 储另一个 HLL 指令 含义 geoadd ......获得指定地区坐标值 geodist [m|km|ft|mi] 获取两个位置之间直线距离 georadius 距离 m|km|ft|mi 以给定纬度为中心

56410

Redis 到底是怎么实现“附近的人”这个功能呢?

Redis Geo模块包含了以下6个命令: GEOADD: 将给定位置对象(纬度经度、名字)添加到指定key; GEOPOS: 从key里面返回所有给定位置对象位置(经度纬度); GEODIST...将给定位置对象(纬度经度、名字)添加到指定key。 其中,key为集合名称,member为该经纬度所对应对象。...(zset)保存位置对象,有序集合每个元素都是一个带位置对象,元素score为其经纬度对应52位geohash。...距离单位用户给定范围单位保持一致。 WITHCOORD:将位置对象经度维度也一并返回。...实际搜索时,首先会根据搜索半径计算geohash网格等级(即右图中网格大小等级),并确定九宫格位置(即红色九宫格位置信息);再依次查找计算九宫格点(蓝点红点)与中心点距离,最终筛选出距离范围内

1.1K10

Redis 到底是怎么实现“附近的人”这个功能

Redis Geo模块包含了以下6个命令: GEOADD: 将给定位置对象(纬度经度、名字)添加到指定key; GEOPOS: 从key里面返回所有给定位置对象位置(经度纬度); GEODIST...其中,组合使用GEOADDGEORADIUS可实现“附近的人”“增”“查”基本功能。 要实现微信中“附近的人”功能,可直接使用GEORADIUSBYMEMBER命令。...将给定位置对象(纬度经度、名字)添加到指定key。 其中,key为集合名称,member为该经纬度所对应对象。...距离单位用户给定范围单位保持一致。 - WITHCOORD:将位置对象经度维度也一并返回。...实际搜索时,首先会根据搜索半径计算geohash网格等级(即右图中网格大小等级),并确定九宫格位置(即红色九宫格位置信息);再依次查找计算九宫格点(蓝点红点)与中心点距离,最终筛选出距离范围内

89930

看用 Redis 如何实现微信「​附近的人」​功能?

Redis Geo模块包含了以下6个命令: GEOADD: 将给定位置对象(纬度经度、名字)添加到指定key; GEOPOS: 从key里面返回所有给定位置对象位置(经度纬度); GEODIST...其中,组合使用GEOADDGEORADIUS可实现“附近的人”“增”“查”基本功能。 要实现微信中“附近的人”功能,可直接使用GEORADIUSBYMEMBER命令。...将给定位置对象(纬度经度、名字)添加到指定key。 其中,key为集合名称,member为该经纬度所对应对象。...距离单位用户给定范围单位保持一致。 - WITHCOORD:将位置对象经度维度也一并返回。...实际搜索时,首先会根据搜索半径计算geohash网格等级(即右图中网格大小等级),并确定九宫格位置(即红色九宫格位置信息);再依次查找计算九宫格点(蓝点红点)与中心点距离,最终筛选出距离范围内

90150
领券