Rumah > pangkalan data > Redis > teks badan

Analisis mendalam tentang tiga jenis data khas dalam redis

青灯夜游
Lepaskan: 2021-09-14 10:15:11
ke hadapan
2294 orang telah melayarinya

Artikel ini akan membawa anda melalui tiga jenis data istimewa dalam redis Rakan yang berminat boleh mempelajarinya~

Analisis mendalam tentang tiga jenis data khas dalam redis

Tiga jenis redis khas Jenis data. adegan Gambar

  • [Cadangan berkaitan:

    Tutorial video Redis

    ]
  • Lokasi geografi geospatial

  • redis Geospatial

    telah dilancarkan dalam versi 3.2 Anda boleh melihat penggunaan secara terperinci dalam dokumentasi rasmi:
https://www.redis.net.cn/order/3685.html<.>

Geospatial boleh digunakan dalam senario berikut:

Orang berdekatan

Naik teksi untuk mengira jarak

Kedudukan rakan

Menunggu siri senario berkaitan kedudukan

Analisis mendalam tentang tiga jenis data khas dalam redisGeospatial hanya mempunyai enam arahan

    GEOADD
  • GEODIST
  • GEOHASH

    GEOPOS
  • GEORADIUS
  • GEORADIUSBYMEMBER
  • GEOADD
  • Tambah geolokasi
  • Bujur yang sah ialah dari -180 darjah hingga 180 darjah.
  • Julat latitud yang sah dari -85.05112878 darjah hingga 85.05112878 darjah.
  • Apabila kedudukan koordinat melebihi julat yang ditentukan di atas, arahan ini akan mengembalikan ralat.

Kunci GEOADD [NX|XX] [CH] ahli latitud longitud [ahli latitud longitud ...]

Tambah latitud dan longitud, nama bandar

  • GEOPOS

ahli kunci GEOPOS [ahli ...]

  • Dapatkan maklumat latitud dan longitud bandar yang dinyatakan

GEODIST
127.0.0.1:6379> GEOADD city 113.087559 28.251818 changsha
(integer) 1
127.0.0.1:6379> GEOADD city 114.064552 22.548457 shenzhen
(integer) 1
127.0.0.1:6379> GEOADD city 104.087045 30.666416 chengdu
(integer) 1
127.0.0.1:6379> GEOADD city 118.802422 32.064653 nanjing
(integer) 1
127.0.0.1:6379> GEOADD city 106.558434 29.568996 chongqing
(integer) 1
127.0.0.1:6379> GEOADD city 121.463615 31.195908 shanghai
(integer) 1
127.0.0.1:6379> GEOADD city 117.208093 39.091103 tianjin
(integer) 1
Salin selepas log masuk

GEODIST ahli kunci1 ahli2 [m|km|ft|mi]

  • Terdapat yang berikut 4 unit:
m: meter

km: kilometer
127.0.0.1:6379> GEOPOS city changsha
1) 1) "113.08755666017532349"
   2) "28.25181827470789386"
127.0.0.1:6379> GEOPOS city tianjin
1) 1) "117.20809489488601685"
   2) "39.0911021322545551"
Salin selepas log masuk

kaki: kaki bt: batu

    Dapatkan jarak antara dua bandar

GEOHASH

ahli kunci GEOHASH [ahli ...]

Mengembalikan satu atau lebih elemen yang diwakili oleh GEOHASH, Mengembalikan rentetan 11 aksara Geohash

GEORADIUS

127.0.0.1:6379> GEODIST city changsha tianjin
"1264101.6876"
127.0.0.1:6379> GEODIST city changsha tianjin km
"1264.1017"
127.0.0.1:6379> GEODIST city changsha shenzhen km
"641.9034"
Salin selepas log masuk

GEORADIUS kekunci longitud latitud jejari m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ COUNT count [MANA]] [ASC|DESC] [STORE key] [STOR

Nyatakan longitud dan latitud sebagai asal, nyatakan jejari dan tanya bandar dalam julat yang ditentukan semuanya ada dalam koleksi kami sendiri
  • GEORADIUSBYMEMBER

GEORADIUSBYMEMBER jejari ahli kunci m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [KIRA kiraan [SEBARANG ]] [ASC|DESC ] [Kunci STORE] [Kunci STOREDIST]
127.0.0.1:6379> GEOHASH city changsha
1) "wt02tr5fg00"
127.0.0.1:6379> GEOHASH city changsha beijing
1) "wt02tr5fg00"
2) (nil)
127.0.0.1:6379> GEOHASH city changsha beijing tianjin chongqing
1) "wt02tr5fg00"
2) (nil)
3) "wwgq7hk64t0"
4) "wm7b0yc7zk0"
Salin selepas log masuk

Cari bandar di sekeliling elemen yang ditentukan
Prinsip asas Geospatial ialah untuk gunakan set tempah Zset untuk melaksanakan

, kita boleh menggunakan perintah set tempah Zset untuk mengendalikan Geo. Kami menggunakan arahan Zset untuk mengalami gelombang

127.0.0.1:6379> GEORADIUS city 110 30 500 m
(empty array)
127.0.0.1:6379> GEORADIUS city 110 30 500 km
1) "chongqing"
2) "changsha"
127.0.0.1:6379> GEORADIUS city 110 30 1000 km
1) "chongqing"
2) "chengdu"
3) "shenzhen"
4) "changsha"
5) "nanjing"
127.0.0.1:6379> GEORADIUS city 110 30 700 km withcoord
1) 1) "chongqing"
   2) 1) "106.55843228101730347"
      2) "29.56899626404301529"
2) 1) "chengdu"
   2) 1) "104.08704489469528198"
      2) "30.6664164635846177"
3) 1) "changsha"
   2) 1) "113.08755666017532349"
      2) "28.25181827470789386"
127.0.0.1:6379> GEORADIUS city 110 30 700 km withdist
1) 1) "chongqing"
   2) "335.6530"
2) 1) "chengdu"
   2) "572.3911"
3) 1) "changsha"
   2) "357.4711"
127.0.0.1:6379> GEORADIUS city 110 30 700 km withhash
1) 1) "chongqing"
   2) (integer) 4026059435699931
2) 1) "chengdu"
   2) (integer) 4026137831798506
3) 1) "changsha"
   2) (integer) 4050903792284309
Salin selepas log masuk

statistik kardinaliti Hyperloglog

    .
  • kardinaliti Apa itu?

Nombor asas ialah nombor tidak berulang, contohnya:

127.0.0.1:6379> GEORADIUSBYMEMBER city tianjin 1000 km
1) "nanjing"
2) "tianjin"
3) "shanghai"
127.0.0.1:6379> GEORADIUSBYMEMBER city tianjin 500 km
1) "tianjin"
127.0.0.1:6379> GEORADIUSBYMEMBER city tianjin 5000 km
1) "chongqing"
2) "chengdu"
3) "shenzhen"
4) "changsha"
5) "shanghai"
6) "nanjing"
7) "tianjin"
Salin selepas log masuk
A = {1,2,3,4,5}

B = { 2,3 ,4,5,6}

Maka asas penyatuan A dan B ialah 6
127.0.0.1:6379> ZRANGE city 0 -1
1) "chongqing"
2) "chengdu"
3) "shenzhen"
4) "changsha"
5) "shanghai"
6) "nanjing"
7) "tianjin"
127.0.0.1:6379> ZCARD city
(integer) 7
Salin selepas log masuk

Pengenalan

Hyperloglog ialah redis 2.8.9 Struktur data ini tersedia pada permulaan versi

statistik kardinaliti hyperloglog redis juga merupakan algoritma

Sebagai contoh, terdapat senario aplikasi sedemikian:

Bilangan pelawat laman web Menurut statistik, jika pengguna yang sama melawati tapak web beberapa kali, ia hanya dikira sebagai 1

Cara tradisional ialah menggunakan set untuk menyimpan id, dan kira bilangan id dalam set untuk mengira bilangan orangTiada masalah dengan kaedah ini, tetapi jika jumlah data banyak, ia akan menjadi sangat menyusahkan, kerana ia tidak berguna untuk kita. untuk mendapatkan ID, kita hanya perlu mengira

Kelebihan

  • Ruang memori yang diduduki oleh Hyperloglog ditetapkan, 2^16th kuasa, dan hanya memerlukan 12 KB memori Dari perspektif memori, Hyperloglog ialah pilihan pertama untuk pemilihan teknologi

    elemen utama PFADD [elemen ...]

    Tambah satu atau lebih elemen pada Hyperloglog
    • PFMERGE destkey sourcekey [sourcekey ...]

    将多个 Hyperloglog 取并集,得到一个结果 Hyperloglog ,里面的数据是不会重复的

    127.0.0.1:6379> PFADD myhash  1 2 3 4 5 6 7 8
    (integer) 1
    127.0.0.1:6379> pfadd myhash2 3 4 5 6 7 8 9 0 88 99
    (integer) 1
    127.0.0.1:6379> PFMERGE res myhash myhash2
    OK
    127.0.0.1:6379> PFCOUNT res
    (integer) 12
    127.0.0.1:6379> PFCOUNT myhash
    (integer) 8
    127.0.0.1:6379> PFCOUNT myhash2
    (integer) 10
    Salin selepas log masuk

    Bitmaps 位图场景

    Bitmaps 位图,位存储

    一般用于,统计用户信息,活跃,不活跃,

    登录,不登录

    打卡,不打卡 等等,两种状态

    Bitmaps 位图,也是一种数据结构,是操作二进制的方式来进行记录的,只有 0 和 1 两种状态

    Analisis mendalam tentang tiga jenis data khas dalam redis

    例如我们举个例子,来记录着一周每天的心情,1 是开心,0 是沮丧

    • SETBIT key offset value

    设置 bit 位的值

    • GETBIT key offset

    获取 bit 位的值

    127.0.0.1:6379> SETBIT week 0 1
    (integer) 0
    127.0.0.1:6379> SETBIT week 1  1
    (integer) 0
    127.0.0.1:6379> SETBIT week 2 1
    (integer) 0
    127.0.0.1:6379> SETBIT week 3 0
    (integer) 0
    127.0.0.1:6379> SETBIT week 4 0
    (integer) 0
    127.0.0.1:6379> SETBIT week 5 1
    (integer) 0
    127.0.0.1:6379> SETBIT week 6 1
    (integer) 0
    127.0.0.1:6379> GETBIT week 6
    (integer) 1
    127.0.0.1:6379> GETBIT week 5
    (integer) 1
    Salin selepas log masuk

    更多编程相关知识,请访问:编程视频!!

    Atas ialah kandungan terperinci Analisis mendalam tentang tiga jenis data khas dalam redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan