この記事では、redis の 3 つの特殊なデータ型について説明します。興味のある友人はそれについて学ぶことができます~
Redis ビデオ チュートリアル ]
地理空間は次のシナリオで使用できます:
有効な経度の範囲は -180 度から 180 度です。
GEOADD キー [NX|XX] [CH] 経度緯度メンバー [経度緯度メンバー ...]
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
GEOPOS
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"
GEODIST
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"
GEOHASH
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"GEORADIUS
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) 4050903792284309GEORADIUSBYMEMBER
GEORADIUSBYMEMBER キー メンバー半径 m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE キー] [STOREDIST key]
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"
地理空間の基礎となる原理は、Zset 順序付きコレクションを使用して実装されています
。 Zset 順序付けコレクション Geo を操作するには、Zset コマンドを使用して wave を体験します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) 7Hyperloglog Cardinality Statistics
基数は繰り返しのない数値です。例:
A = {1,2,3,4,5}B = { 2,3 ,4,5,6}A と B の和集合の基底は 6はじめに
Hyperloglog は redis です2.8.9 この種のデータ構造はバージョンの最初で利用可能です #redis ハイパーログログ カーディナリティ統計もアルゴリズムです
#たとえば、次のようなアプリケーション シナリオがあります: Web ページへの訪問者数統計によると、同じユーザーが Web サイトに複数回アクセスした場合、1 としてのみカウントされます従来の方法では、次のセットを使用します。 IDを保存し、セット内のIDの数を数えて人数を計算しますPFADD キー要素 [要素 ...]
1 つ以上の要素を 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
更多编程相关知识,请访问:编程视频!!
以上がRedis の 3 つの特殊なデータ型の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。