深圳上市公司网站建设,网站图片如何做链接,中职网络营销教案,网站交换链接怎么做?三种特性数据类型
geospatial
定位#xff0c;附近的人#xff0c;打车距离计算。
redis的geo在redis3.2版本就推出了。可推算地理位置的信息#xff0c;两地之间的距离#xff0c;方圆几里的人。
6个命令。
GEOADD
GEODIST
GEOHASH
GEOPOS
GEORADIUS
GEORADIUSBYMEMB…三种特性数据类型
geospatial
定位附近的人打车距离计算。
redis的geo在redis3.2版本就推出了。可推算地理位置的信息两地之间的距离方圆几里的人。
6个命令。
GEOADD
GEODIST
GEOHASH
GEOPOS
GEORADIUS
GEORADIUSBYMEMBERhttps://redis.io/commands/geoadd# geoadd china:city 经度 纬度 城市
# 可通过程序将信息读取到redis中..geoadd china 116.40 39.90 beijing
geoadd china:city 121.47 31.23 shanghai
geoadd china:city 120.16 30.24 hangzhou# geopos 获取城市所在的经纬度
getpos china:city beijing
getpos china:city hangzhou beijing # geodist 获取两个位置之间的距离
# m 米 km 千米 mi 英里 ft 英尺geodist china:city beijing shanghai km
geodist china:city beijing hangzhou km# 需求我附近的人通过半径来查询。
# 获取指定数量的人。
# georaduis 以给定的经纬度为中心找出某一半径内的元素
georadius china:city 110 30 1000 km # 当前经度110维度30 获取半径1000km的城市georadius china:city 110 30 500 km withdis # 获取到城市距离georadius china:city 110 30 500 km withcoord # 获取到城市经纬度georadius china:city 110 30 500 kim withdis withcoord count 1 # 获取500千米内一个城市经纬度距离# georadiusBymember 根据某个城市找到附近的城市
georadiusbymember china:city beijing 1000km # 找出北京附近1000km的城市# geohash 返回一个或者多个位置元素的geohash表示
# 返回11个字符的geohash字符串
geohash china:city bejing shanghai# geo的底层实现原理就是zset可以使用zset来操作geo
# 具体见zset操作有序集合127.0.0.1:6379[1] zrem china:city hangzhou
(integer) 1
127.0.0.1:6379[1] zrange china:city 0 -1
1) shanghai
2) beijing
hyperloglogs
2.8.9 hyperloglog 数据结构
redis hyperloglog 基数统计的算法 (不重复)
优点占用内存是固定的。2^64不同的元素的基数只需要12kb内存。
网页的uv一个人访问一个网站多次但是还是算作一个人。传统的方式set保存用户的id然后就可以统计set中的元素数量作为标准判断。
set的确定用户id太长太多。是为了计数。
测试使用
# 一组数
pfadd mykey a b c d e f g h i j
# 获取不重复长度
pfcount mykey
# new
pfadd mykey2 i j z x c v b n m
# get len
pfcount mykey2
# 合成新的key
pfmerge mykey 3 mykey my key2
# 两组key的合并后不重复字符的长度
pfcount mykey3# demo# 第一组数
127.0.0.1:6379[1] pfadd key1 a b c d e f g
(integer) 1
127.0.0.1:6379[1] pfcount key1
(integer) 7
# 第二组数
127.0.0.1:6379[1] pfadd key2 e f g h i j k
(integer) 1
127.0.0.1:6379[1] pfcount key2
(integer) 7
# 合成一组基数
127.0.0.1:6379[1] pfmerge key3 key1 key2
OK
127.0.0.1:6379[1] pfcount key3
(integer) 11
如果允许容错可使用hyperloglog来进行网站访问统计。
不容错使用set或者自定义。
bitmap
# 位存储
# 统计疫情的感染人数 01 01
# 统计用户信息 活跃不活跃。登录未登录。打卡。两个状态的都可使用bitMaps.
# 位图也是一种数据库的。都是操作二进制位来进行记录。就只有0和1两个状态。# setbit sign offset value 设置值
# getbit sign offset 获取值
# bitcount sign (start, end) 统计值为1的# 打开demo假设已经打开的为1位打开的为0# 设置周一到周天打开信息 0未打开1已经打开
127.0.0.1:6379[1] setbit sign 0 1
(integer) 0
127.0.0.1:6379[1] setbit sign 1 0
(integer) 0
127.0.0.1:6379[1] setbit sign 2 0
(integer) 0
127.0.0.1:6379[1] setbit sign 3 1
(integer) 0
127.0.0.1:6379[1] setbit sign 4 1
(integer) 0
127.0.0.1:6379[1] setbit sign 5 0
(integer) 0
127.0.0.1:6379[1] setbit sign 6 1
(integer) 0
# 获取打开信息 周六
127.0.0.1:6379[1] getbit sign 5
(integer) 0
# 获取打卡信息 周末
127.0.0.1:6379[1] getbit sign 6
(integer) 1
# 统计打卡的数量1
127.0.0.1:6379[1] bitcount sign
(integer) 4
127.0.0.1:6379[1] bitcount sign 0 6
(integer) 4