成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Redis中的三種特殊類型

數據庫 Redis
Redis中的Geospatial是一個用于地理空間數據的功能模塊,它可以存儲和查詢地理坐標、半徑、矩形、多邊形等地理空間對象。

前言

Redis中的這三個數據類型在很多開源的項目中都有使用到,除了日常開發中使用Java去實現某些功能外,還可以通過這些特殊的數據類型進行實現,本文也簡單介紹了這三種數據類型使用的場景,可以幫助讀者在開發中實現功能提供新的思路。

一、Geospatial(地理位置)

Geospatial類型Redis官方文檔-Redis geospatial | Redis

Redis中的Geospatial是一個用于地理空間數據的功能模塊,它可以存儲和查詢地理坐標、半徑、矩形、多邊形等地理空間對象。通過使用Geospatial,您可以對地理空間對象進行各種操作,例如計算兩個地點之間的距離、查找位于給定半徑內的地點、查找位于給定矩形或多邊形內的地點等。

基礎命令

  • GEOADD adds a location to a given geospatial index (note that longitude comes before latitude with this command).
  • GEOSEARCH returns locations with a given radius or a bounding box.

命令演示

1. 添加地理位置

Geospatial規則: 兩級無法直接添加,我們一般會下載城市數據,直接通過java序一次性導入!

有效的經度從-180度到180度. 有效的緯度從-85.05112878度到85.05112878度。

參數:key 值:經度 緯度 名稱

127.0.0.1:6379> GEOADD china:city 116.40 39.90 beijin
(integer) 1
127.0.0.1:6379> GEOADD china:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> GEOADD china:city 106.50 29.53 chognqin 114.05 22.52 shenzheng
(integer) 2
127.0.0.1:6379> GEOADD china:city 120.16 30.24 hangzhou 108.96 34.26 xian
(integer) 2

2. 獲取城市地理位置

127.0.0.1:6379> GEOPOS china:city beijin #獲取城市的經度和緯度
1) 1) "116.39999896287918091"
   2) "39.90000009167092543"
127.0.0.1:6379> GEOPOS china:city shanghai
1) 1) "121.47000163793563843"
   2) "31.22999903975783553"

3. 計算兩個城市之間的距離

127.0.0.1:6379> GEODIST china:city beijin shanghai
"1067378.7564"
127.0.0.1:6379> GEODIST china:city beijin shanghai km #單位有m、km、mi、ft
"1067.3788"

4. 以給定的經緯度為中心,找出某一半徑內的元素

127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km #經度110,緯度30為中心,尋找半徑1000km以內的城市
1) "chognqin"
2) "xian"
3) "shenzheng"
4) "hangzhou"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km count 2 #限制查詢的數量
1) "chognqin"
2) "xian"
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km withcoord #顯示經度緯度
1) 1) "chognqin"
   2) 1) "106.49999767541885376"
      2) "29.52999957900659211"
2) 1) "xian"
   2) 1) "108.96000176668167114"
      2) "34.25999964418929977"
3) 1) "shenzheng"
   2) 1) "114.04999762773513794"
      2) "22.5200000879503861"
4) 1) "hangzhou"
   2) 1) "120.1600000262260437"
      2) "30.2400003229490224"

5. 以城市為中心尋找其它城市

127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijin 1000 km
1) "beijin"
2) "xian"

6. 將經緯度轉化為字符串

127.0.0.1:6379> GEOHASH china:city beijin
1) "wx4fbxxfke0"

7. 使用Zset的命令來操作Geospatial

==Geospatial的底層實現原理就是Zset,可以用Zset命令來操作Geospatial==

127.0.0.1:6379> ZRANGE china:city 0 -1
1) "chognqin"
2) "xian"
3) "shenzheng"
4) "hangzhou"
5) "shanghai"
6) "beijin"
127.0.0.1:6379> ZREM china:city xian
(integer) 1
127.0.0.1:6379> ZRANGE china:city 0 -1
1) "chognqin"
2) "shenzheng"
3) "hangzhou"
4) "shanghai"
5) "beijin"

二、 HyperLogLog(基數統計)

HyperLogLog類型Redis官方文檔-HyperLogLog | Redis

HyperLogLog常用于大數據量的統計,比如頁面訪問量統計或者用戶訪問量統計。其實現最多使用 12 KB,并提供 0.81% 的標準誤差。

什么是基數?

基數在數學中是集合論中刻畫任意集合大小的一個概念。它表示一個集合中不同元素的個數。例如,集合{1, 2, 3, 3, 4, 5, 5, 6, 6, 6}中有9個元素,但其中不重復的元素只有1、2、3、4、5、6,所以它的基數是6。

基礎命令

  • PFADD adds an item to a HyperLogLog.
  • PFCOUNT returns an estimate of the number of items in the set.
  • PFMERGE combines two or more HyperLogLogs into one.

命令演示

1. 創建元素,并統計其中的個數

127.0.0.1:6379> PFADD mykey a b c d e f g h i j #創建一組元素
(integer) 1
127.0.0.1:6379> PFCOUNT mykey #統計基數數量
(integer) 10
127.0.0.1:6379> PFADD mykey2 i jz x c v b n m 
(integer) 1
127.0.0.1:6379> PFCOUNT mykey2
(integer) 8

2. 合并元素

127.0.0.1:6379> PFMERGE mykey3 mykey mykey2 #mykey 和mykey2合并為mykey3(并集)
OK
127.0.0.1:6379> PFCOUNT mykey3
(integer) 15

三、BitMaps

BitMaps類型Redis官方文檔-Redis bitmaps | Redis

Redis中的BitMaps是一種基于位圖的數據結構,它允許用戶將位圖存儲為字符串,并對其進行位操作。

基礎命令

  • SETBIT sets a bit at the provided offset to ==0 or 1==.
  • GETBIT returns the value of a bit at a given offset.
  • BITOP lets you perform bitwise operations against one or more strings.

命令演示

1. 使用BitMaps來記錄狀態

127.0.0.1:6379> setbit sign 0 1
(integer) 0
127.0.0.1:6379> setbit sign 1 0
(integer) 0
127.0.0.1:6379> setbit sign 2 0
(integer) 0
127.0.0.1:6379> setbit sign 3 1
(integer) 0
127.0.0.1:6379> setbit sign 4 1
(integer) 0
127.0.0.1:6379> setbit sign 5 0
(integer) 0
127.0.0.1:6379> setbit sign 6 1
(integer) 0

2. 查看狀態

127.0.0.1:6379> GETBIT sign 1
(integer) 0
127.0.0.1:6379> GETBIT sign 3
(integer) 1

3. 統計狀態

127.0.0.1:6379> BITCOUNT sign
(integer) 4


責任編輯:武曉燕 來源: 今日頭條
相關推薦

2011-01-18 15:35:59

jQueryJavaScriptweb

2010-05-11 14:08:50

MySQL數字類型

2021-11-05 21:33:28

Redis數據高并發

2022-06-20 08:50:16

TypeScript類型語法

2009-08-06 15:26:18

C#異常類型

2010-09-09 10:43:56

VPN服務

2018-12-13 20:14:18

物聯網平臺物聯網IOT

2020-11-11 21:27:55

緩沖文件調用

2019-12-02 14:14:20

緩沖系統調用函數

2012-08-10 14:38:13

2009-06-29 18:21:29

Hibernate

2009-12-10 15:46:22

動態路由協議

2011-06-03 11:53:06

Spring接口

2009-05-07 15:02:42

OracleJoin查詢

2021-07-05 06:57:06

VMware vSph虛擬機磁盤

2023-03-07 08:25:39

探針Kubernetes

2024-07-01 12:42:58

2012-03-21 17:18:41

2009-08-03 17:41:20

ASP.NET Cac

2012-03-18 21:10:07

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久精品久久 | 久久久久久国产精品免费免费狐狸 | 久久久人成影片一区二区三区 | 三级免费毛片 | 免费黄色大片 | 欧美一区二区三区四区视频 | 亚洲成人一级 | 久久精品一区二区视频 | 亚洲一区| 男女羞羞视频在线观看 | 国产资源一区二区三区 | 久久网国产 | 波多野结衣先锋影音 | 午夜精品91 | 欧美成人一区二区三区 | 久久久久久久一区 | 日本视频免费观看 | 韩日在线观看视频 | 成人福利在线观看 | 久久一级 | 午夜看电影在线观看 | 美女操网站 | 超碰美女在线 | 久久精品日 | 97日日碰人人模人人澡分享吧 | 在线观看视频福利 | 美女一区 | 国产免费一区二区 | 精品中文字幕视频 | 国产久| 91精品一区二区三区久久久久久 | 国产一区二区在线免费观看 | 91久久久久久 | 国产精品免费一区二区三区四区 | 亚洲巨乳自拍在线视频 | www.日本三级| 影视先锋av资源噜噜 | 亚洲综合精品 | 久久国产精品视频 | 精品视频久久久久久 | 一区二区三区国产好 |