国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis三種特殊數(shù)據(jù)類型

這篇具有很好參考價值的文章主要介紹了Redis三種特殊數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Redis三種特殊數(shù)據(jù)類型

geospatial 地理位置

Redis 地理空間數(shù)據(jù)類型簡介

Redis 地理空間索引允許您存儲坐標(biāo)并搜索它們。 此數(shù)據(jù)結(jié)構(gòu)可用于查找給定半徑或邊界框內(nèi)的鄰近點。

基本命令

  • GEOADD 將位置添加到給定的地理空間索引(請注意,使用此命令,經(jīng)度位于緯度之前)。
  • GEOSEARCH 返回具有給定半徑或邊界框的位置。

Redis三種特殊數(shù)據(jù)類型,Redis,redis,數(shù)據(jù)庫,緩存

geoadd

# getadd 添加地理位置
127.0.0.1:6379> geoadd china:city 116.4 39.9 beijing
(integer) 1
127.0.0.1:6379> geoadd china:city 125.1 42.9 xian
(integer) 1
127.0.0.1:6379> geoadd china:city 121.4 31.2 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 114.0 22.5 shenzhen
(integer) 1
127.0.0.1:6379> geoadd china:city 120.2 30.2 hangzhou
(integer) 1
127.0.0.1:6379> geoadd china:city 118.8 32.0 nanjing
(integer) 1

geopos

獲得當(dāng)前定位:一定是一個坐標(biāo)值

127.0.0.1:6379> geopos china:city beijing # 獲取指定的城市的經(jīng)度和維度
1) 1) "116.39999896287918091"
   2) "39.90000009167092543"

geodist

單位:

  • m表示單位為米

  • km表示單位為千米

  • mi表示單位為英里

  • f化t表示單位為英尺

127.0.0.1:6379> geodist china:city beijing xian # 查看北京到西安的直線距離
"798353.9550"
127.0.0.1:6379> geodist china:city beijing xian km
"798.3540"
127.0.0.1:6379> geodist china:city beijing shanghai km # 查看北京到上海的直線距離
"1067.7424"

georadius 以給定的經(jīng)緯度為中心 找出某一半徑內(nèi)的元素

127.0.0.1:6379> georadius china:city  110 30 1000 km # 獲取110,30這個位置為中心,搜尋方圓1000km的城市
1) "shenzhen"
2) "hangzhou"
3) "nanjing"
127.0.0.1:6379> georadius china:city  110 30 1000 km withdist # 顯示到中心距離的位置
1) 1) "shenzhen"
   2) "924.4990"
2) 1) "hangzhou"
   2) "981.4461"
3) 1) "nanjing"
   2) "867.6807"
127.0.0.1:6379> georadius china:city  110 30 1000 km withcoord # 顯示其他定位信息
1) 1) "shenzhen"
   2) 1) "114.00000125169754028"
      2) "22.50000113800319212"
2) 1) "hangzhou"
   2) 1) "120.20000249147415161"
      2) "30.19999988833350102"
3) 1) "nanjing"
   2) 1) "118.80000203847885132"
      2) "31.99999916826298119"
127.0.0.1:6379> georadius china:city  110 30 1000 km withcoord count 2 # 篩選指定結(jié)果
1) 1) "nanjing"
   2) 1) "118.80000203847885132"
      2) "31.99999916826298119"
2) 1) "shenzhen"
   2) 1) "114.00000125169754028"
      2) "22.50000113800319212"

georadiusbymember

找出位于指定元素周圍其他的元素

127.0.0.1:6379> georadiusbymember china:city beijing 1000 km 
1) "nanjing"
2) "beijing"
3) "xian"

geohash 返回一個或者多個位置元素的Geohash

該命令將返回11個字符串的Geohash字符串

127.0.0.1:6379> geohash china:city beijing xian
1) "wx4fbxxfke0"
2) "wz8un9xn970"

geo 底層的實現(xiàn)原理其實就是zset!可以使用zset命令來操作geo

127.0.0.1:6379> zrange china:city 0 -1
1) "shenzhen"
2) "hangzhou"
3) "shanghai"
4) "nanjing"
5) "beijing"
6) "xian"

Hyperloglog

Redis 在 2.8.9 版本添加了 HyperLogLog 結(jié)構(gòu)。

Redis HyperLogLog 是用來做基數(shù)統(tǒng)計的算法,HyperLogLog 的優(yōu)點是,在輸入元素的數(shù)量或者體積非常非常大時,計算基數(shù)所需的空間總是固定 的、并且是很小的。

在 Redis 里面,每個 HyperLogLog 鍵只需要花費 12 KB 內(nèi)存,就可以計算接近 2^64 個不同元素的基 數(shù)。這和計算基數(shù)時,元素越多耗費內(nèi)存就越多的集合形成鮮明對比。

但是,因為 HyperLogLog 只會根據(jù)輸入元素來計算基數(shù),而不會儲存輸入元素本身,所以 HyperLogLog 不能像集合那樣,返回輸入的各個元素。


什么是基數(shù)?

比如數(shù)據(jù)集 {1, 3, 5, 7, 5, 7, 8}, 那么這個數(shù)據(jù)集的基數(shù)集為 {1, 3, 5 ,7, 8}, 基數(shù)(不重復(fù)元素)為5。 基數(shù)估計就是在誤差可接受的范圍內(nèi),快速計算基數(shù)。

優(yōu)點∶占用的內(nèi)存是固定,2^64不同的元素的技術(shù),只需要廢12KB內(nèi)存!如果要從內(nèi)存角度來比較的話

Hyperloglog首選 !網(wǎng)頁的UV(一個人訪問一個網(wǎng)站多次,但是還是算作一個人!)

傳統(tǒng)的方式,set保存用戶的id,然后就可以統(tǒng)計set中的元素數(shù)量作為標(biāo)準(zhǔn)判斷!

這個方式如果保存大量的用戶id,就會比較麻煩!我們的目的是為了計數(shù),而不是保存用戶id ;

0.81%錯誤率!統(tǒng)計UV任務(wù),可以忽略不計的!

redis HyperLogLog 的基本命令:

序號 命令及描述
1 [PFADD key element element …] 添加指定元素到 HyperLogLog 中。
2 [PFCOUNT key key …] 返回給定 HyperLogLog 的基數(shù)估算值。
3 [PFMERGE destkey sourcekey sourcekey …] 將多個 HyperLogLog 合并為一個 HyperLogLog

實例:

127.0.0.1:6379> pfadd mykey a b c d e f g h i j # 創(chuàng)建第一組元素 mykey
(integer) 1 
127.0.0.1:6379> pfcount mykey # 統(tǒng)計mykey元素的基數(shù)數(shù)量
(integer) 10
127.0.0.1:6379> pfadd mykey2 i j z x c v b n m # 創(chuàng)建第er組元素 mykey2
(integer) 1
127.0.0.1:6379> pfcount mykey2
(integer) 9
127.0.0.1:6379> pfcount mykey3
(integer) 9
127.0.0.1:6379> pfmerge mykey3 mykey mykey2 # 合并兩組mykey mykey2 => mykey3 并集
OK
127.0.0.1:6379> pfcount mykey3
(integer) 15

如果允許容錯,那么一定可以使用Hyperloglog!

如果不允許容錯,就使用set或者自己的數(shù)據(jù)類型即可!

Bitmaps

位存儲

統(tǒng)計用戶信息,活躍,不活躍!登錄、未登錄!打卡,365打卡!兩個狀態(tài)的,都可以使用Bitmaps !

Bitmaps位圖,數(shù)據(jù)結(jié)構(gòu)!都是操作二進(jìn)制位來進(jìn)行記錄,就只有0和1兩個狀態(tài)!

365天= 365 bit 1字節(jié)= 8 bit 46個字節(jié)左右!

使用bitmap 來記錄周一到周日的打卡!

周一:1 周二:0 周三:0 周四:1 …

Redis三種特殊數(shù)據(jù)類型,Redis,redis,數(shù)據(jù)庫,緩存

查看某一天是否打卡

127.0.0.1:6379> getbit sign 3
(integer) 0
127.0.0.1:6379> getbit sign 6
(integer) 0

統(tǒng)計操作 統(tǒng)計打卡的天數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-680383.html

127.0.0.1:6379> bitcount sign # 統(tǒng)計這周打卡記錄
(integer) 3

到了這里,關(guān)于Redis三種特殊數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • redis實戰(zhàn)-緩存數(shù)據(jù)&解決緩存與數(shù)據(jù)庫數(shù)據(jù)一致性

    redis實戰(zhàn)-緩存數(shù)據(jù)&解決緩存與數(shù)據(jù)庫數(shù)據(jù)一致性

    緩存( Cache),就是數(shù)據(jù)交換的 緩沖區(qū) ,俗稱的緩存就是 緩沖區(qū)內(nèi)的數(shù)據(jù) ,一般從數(shù)據(jù)庫中獲取,存儲于本地代碼。防止過高的數(shù)據(jù)訪問猛沖系統(tǒng),導(dǎo)致其操作線程無法及時處理信息而癱瘓,這在實際開發(fā)中對企業(yè)講,對產(chǎn)品口碑,用戶評價都是致命的;所以企業(yè)非常重視緩存技術(shù),

    2024年02月12日
    瀏覽(36)
  • redis數(shù)據(jù)庫緩存服務(wù)器

    redis數(shù)據(jù)庫緩存服務(wù)器

    redis比mysql訪問數(shù)據(jù)快 非關(guān)系型數(shù)據(jù)庫以鍵值對的方式存儲數(shù)據(jù) 作用:加快訪問速度,緩解數(shù)據(jù)庫壓力 redis最新版本7 特點 豐富的數(shù)據(jù)結(jié)構(gòu) list,set,hash等數(shù)據(jù)結(jié)構(gòu)的存儲 支持持久化 支持事務(wù) “一個完整的動作,要么全部執(zhí)行,要么什么也沒有做” 支持主從支持高可用,支持

    2024年02月05日
    瀏覽(32)
  • redis的緩存更新策略以及如何保證redis與數(shù)據(jù)庫的數(shù)據(jù)一致性

    redis的緩存更新策略有這么幾種: 1、由應(yīng)用直接和redis以及數(shù)據(jù)庫相連接: ?? ??? ?查詢數(shù)據(jù)時,應(yīng)用去redis中查詢,查不到的話再由應(yīng)用去數(shù)據(jù)庫中查詢,并將查詢結(jié)果放在redis; ?? ??? ?更新數(shù)據(jù)時,由應(yīng)用去觸發(fā)redis數(shù)據(jù)的刪除以及數(shù)據(jù)庫的update。 2、應(yīng)用只跟redi

    2024年02月13日
    瀏覽(25)
  • Redis如何保證緩存和數(shù)據(jù)庫一致性?

    現(xiàn)在我們在面向增刪改查開發(fā)時,數(shù)據(jù)庫數(shù)據(jù)量大時或者對響應(yīng)要求較快,我們就需要用到Redis來拿取數(shù)據(jù)。 Redis:是一種高性能的內(nèi)存數(shù)據(jù)庫,它將數(shù)據(jù)以鍵值對的形式存儲在內(nèi)存中,具有讀寫速度快、支持多種數(shù)據(jù)類型、原子性操作、豐富的特性等優(yōu)勢。 優(yōu)勢: 性能極高

    2024年01月16日
    瀏覽(41)
  • Redis---數(shù)據(jù)庫和緩存如何保證一致性?

    用「讀 + 寫」請求的并發(fā)的場景來分析: 假如某個用戶數(shù)據(jù)在緩存中不存在,請求 A 讀取數(shù)據(jù)時從數(shù)據(jù)庫中查詢到年齡為 20,在未寫入緩存中時另一個請求 B 更新數(shù)據(jù)。它更新數(shù)據(jù)庫中的年齡為 21,并且清空緩存。這時請求 A 把從數(shù)據(jù)庫中讀到的年齡為 20 的數(shù)據(jù)寫入到緩存

    2024年01月24日
    瀏覽(27)
  • Redis如何保障緩存與數(shù)據(jù)庫的數(shù)據(jù)一致性問題?

    Redis如何保障緩存與數(shù)據(jù)庫的數(shù)據(jù)一致性問題?

    目錄 一.最經(jīng)典的數(shù)據(jù)庫加緩存的雙寫雙刪模式 二. 高并發(fā)場景下的緩存+數(shù)據(jù)庫雙寫不一致問題分析與解決方案設(shè)計 三、上面高并發(fā)的場景下,該解決方案要注意的問題 1.1 Cache Aside Pattern概念以及讀寫邏輯 (1)讀的時候,先讀緩存,緩存沒有的話,那么就讀數(shù)據(jù)庫,然后取

    2023年04月21日
    瀏覽(29)
  • Redis數(shù)據(jù)庫 | 發(fā)布訂閱、主從復(fù)制、哨兵模式、緩存雪崩

    Redis數(shù)據(jù)庫 | 發(fā)布訂閱、主從復(fù)制、哨兵模式、緩存雪崩

    ??wei_shuo的個人主頁 ??wei_shuo的學(xué)習(xí)社區(qū) ??Hello World ! Redis 發(fā)布訂閱 (pub/sub) 是一種消息通信模式:發(fā)送者 (pub) 發(fā)送消息,訂閱者 (sub) 接收消息 Redis 客戶端可以訂閱任意數(shù)量的頻道 Redis主從復(fù)制是指在Redis中設(shè)置一個主節(jié)點(Master)和一個或多個從節(jié)點(Slave),

    2024年02月15日
    瀏覽(25)
  • Springboot+Redis:實現(xiàn)緩存 減少對數(shù)據(jù)庫的壓力

    Springboot+Redis:實現(xiàn)緩存 減少對數(shù)據(jù)庫的壓力

    ????歡迎光臨,終于等到你啦???? ??我是蘇澤,一位對技術(shù)充滿熱情的探索者和分享者。???? ??持續(xù)更新的專欄 Redis實戰(zhàn)與進(jìn)階 本專欄講解Redis從原理到實踐 這是蘇澤的個人主頁可以看到我其他的內(nèi)容哦???? 努力的蘇澤 http://suzee.blog.csdn.net/ ? 目錄 緩存如何實現(xiàn)?

    2024年03月24日
    瀏覽(19)
  • 數(shù)據(jù)庫緩存服務(wù)——NoSQL之Redis配置與優(yōu)化

    數(shù)據(jù)庫緩存服務(wù)——NoSQL之Redis配置與優(yōu)化

    目錄 一、緩存概念 1.1 系統(tǒng)緩存 1.2 緩存保存位置及分層結(jié)構(gòu) 1.2.1 DNS緩存 1.2.2 應(yīng)用層緩存 1.2.3 數(shù)據(jù)層緩存 1.2.4 硬件緩存 二、關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫 2.1 關(guān)系型數(shù)據(jù)庫 2.2 非關(guān)系型數(shù)據(jù)庫 2.3 關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫區(qū)別: 2.4 非關(guān)系型數(shù)據(jù)庫產(chǎn)生背景 2.5 總結(jié)

    2024年02月15日
    瀏覽(24)
  • Redis緩存MySQL數(shù)據(jù)庫存儲二者如何保證數(shù)據(jù)一致性

    在大型互聯(lián)網(wǎng)應(yīng)用中,由于數(shù)據(jù)庫讀寫頻繁、壓力大等原因,我們通常會使用緩存來減少數(shù)據(jù)庫的訪問次數(shù),提高系統(tǒng)的性能。而Redis作為一個高性能的內(nèi)存數(shù)據(jù)庫,成為了緩存的首選方案之一。但是,緩存和數(shù)據(jù)庫之間存在數(shù)據(jù)一致性的問題,如何解決這個問題呢?本文將

    2023年04月19日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包