Artikel ini akan membawa anda melalui tiga jenis data istimewa dalam redis Rakan yang berminat boleh mempelajarinya~
Tutorial video Redis
]Lokasi geografi geospatial
Naik teksi untuk mengira jarak
Kedudukan rakan
Menunggu siri senario berkaitan kedudukan
Geospatial hanya mempunyai enam arahan
Tambah latitud dan longitud, nama bandar
ahli kunci GEOPOS [ahli ...]
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
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"
GEOHASH
ahli kunci GEOHASH [ahli ...]
Mengembalikan satu atau lebih elemen yang diwakili oleh GEOHASH, Mengembalikan rentetan 11 aksara GeohashGEORADIUS
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"
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"
, 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
statistik kardinaliti Hyperloglog
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"
B = { 2,3 ,4,5,6}
Maka asas penyatuan A dan B ialah 6127.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
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
elemen utama PFADD [elemen ...]
Tambah satu atau lebih elemen pada Hyperloglog将多个 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
Bitmaps 位图,位存储
一般用于,统计用户信息,活跃,不活跃,
登录,不登录
打卡,不打卡 等等,两种状态
Bitmaps 位图,也是一种数据结构,是操作二进制的方式来进行记录的,只有 0 和 1 两种状态
例如我们举个例子,来记录着一周每天的心情,1 是开心,0 是沮丧
设置 bit 位的值
获取 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
更多编程相关知识,请访问:编程视频!!
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!