日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

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

分享到:
標簽:Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定