Redis—Bitmaps、HyperLogLog 、Geospatialip(地址报错(连接失败))

5 篇文章 0 订阅
5 篇文章 0 订阅

虚拟机ifconfig命令显示未分配ip地址

记录一个问题—虚拟机ifconfig命令显示未分配ip地址,虚拟机没联网
尝试删除除NAT模式外其他的网络配置
失败
在这里插入图片描述
网络适配没问题,NAT模式共享主机IP没问题
在这里插入图片描述
最后修改网关IP
在这里插入图片描述
将最后的2改为1
结果成功在这里插入图片描述
但是网卡不是eth0 而是 ens36,并且xshell似乎仍然无法连接到虚拟机服务器…

在这里插入图片描述
关闭虚拟机,重新选择驱动
在这里插入图片描述
再开机后可以选择重新安装tool
在关机使用iso映像登陆就安装好了tool

xshell连接虚拟机失败

未解决
在这里插入图片描述
莫名连接上后又丢包?断开了?
在这里插入图片描述
又连上…
在这里插入图片描述

新数据类型BitMaps、HyperLogLog

Bitmaps 这个“数据类型”可以实现对位的操作

(1) Bitmaps 本身不是一种数据类型, 实际上是字符串(key-value) ,但是它可以对字符串的位进行操作
(2) Bitmaps 单独提供了一套命令, 所以在 Redis 中使用 Bitmaps 和使用字符串的方法不太相同。 可以把 Bitmaps 想象成一个以位为单位的数组,数组的每个单元只能存储 0 和 1, 数组的下标在 Bitmaps 中叫做偏移量

命令

setbit

(1)格式
setbit <key> <offset> <value>设置 Bitmaps 中某个偏移量的值(0 或 1)
实例
每个独立用户是否访问过网站存放在 Bitmaps 中, 将访问的用户记做 1, 没有
访问的用户记做 0, 用偏移量作为用户的 id
在这里插入图片描述

getbit

(1)格式
getbit<key><offset>获取 Bitmaps 中某个偏移量的值
获取键的第 offset 位的值(从 0 开始算)
实例
获取 id=8 的用户是否在 2020-11-06 这天访问过, 返回 0 说明没有访问过:

在这里插入图片描述

bitcount

统计字符串被设置为 1 的 bit 数
一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。start 和 end 参数的设置,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,start、end 是指 bit 组的字节的下标数,二者皆包含
(1)格式
bitcount<key>[start end] 统计字符串从 start 字节到 end 字节比特值为 1 的数量
(2)实例
计算 2022-11-06 这天的独立访问用户数量
start 和 end 代表起始和结束字节数, 下面操作计算用户 id 在第 1 个字节到第 3 个字
节之间的独立访问用户数, 对应的用户 id 是 11, 15, 19。
在这里插入图片描述
在这里插入图片描述

bitop

(1)格式

bitop and(or/not/xor) <destkey> [key]

bitop 是一个复合操作,
可以做多个 Bitmaps 的 and(交集) 、 or(并集) 、 not(非) 、 xor(异或) 操作
并将结果保存在 destkey 中
(2)实例
2020-11-04 日访问网站的 userid=1,2,5,9。

setbit unique:users:20201104 1 1
setbit unique:users:20201104 2 1
setbit unique:users:20201104 5 1
setbit unique:users:20201104 9 1

2020-11-03 日访问网站的 userid=0,1,4,9。

setbit unique:users:20201103 0 1
setbit unique:users:20201103 1 1
setbit unique:users:20201103 4 1
setbit unique:users:20201103 9 1

计算出两天都访问过网站的用户数量

bitop and unique:users:and:20201104_03
unique:users:20201103unique:users:2020110

在这里插入图片描述
在这里插入图片描述

Redis HyperLogLog 是用来做基数统计的算法

命令

pfadd

(1)格式
pfadd <key>< element> [element ...] 添加指定元素到 HyperLogLog 中
在这里插入图片描述
实例
将所有元素添加到指定 HyperLogLog 数据结构中。如果执行命令后 HLL 估计的
近似基数发生变化,则返回 1,否则返回 0
在这里插入图片描述

pfcount

(1)格式
pfcount<key> [key ...] 计算 HLL 的近似基数,可以计算多个 HLL,比如用 HLL 存储每
天的 UV,计算一周的 UV 可以使用 7 天的 UV 合并计算即可
在这里插入图片描述
在这里插入图片描述
实例
3、pfmerge
(1)格式
pfmerge<destkey><sourcekey> [sourcekey ...] 将一个或多个 HLL 合并后的结果存
储在另一个 HLL 中,比如每月活跃用户可以使用每天的活跃用户来合并计算可得
在这里插入图片描述

(2)实例
在这里插入图片描述

Geospatial地理信息查询

Redis 3.2 中增加了对 GEO 类型的支持。GEO,Geographic,地理信息的缩写。
该类型,就是元素的 2 维坐标,在地图上就是经纬度。redis 基于该类型,提供了经纬
度设置,查询,范围查询,距离查询,经纬度 Hash 等常见操作
命令

geoadd

(1)格式
geoadd<key>< longitude><latitude><member> [longitude latitude member...] 添加地理位置(经度,纬度,名称)
(2)实例
在这里插入图片描述

geoadd china:city 121.47 31.23 shanghai
geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shenzhen 116.38 39.90 
beijing

两极无法直接添加,一般会下载城市数据,直接通过 Java 程序一次性导入。 有效的经度从 -180 度 到 180 度 。 有 效 的纬 度
从 -85.05112878 度 到85.05112878 度。
当坐标位置超出指定范围时,该命令将会返回一个错误。已经添加的数据,是无法再次往里面添加的。

geopos

(1)格式
geopos <key><member> [member...] 获得指定地区的坐标值
(2)实例
在这里插入图片描述

geodist

(1)格式
geodist<key><member1><member2> [m|km|ft|mi ] 获取两个位置之间的直线距

(2)实例
在这里插入图片描述

获取两个位置之间的直线距离 单位: m 表示单位为米[默认值]。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。
如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位

georadius

(1)格式
georadius<key>< longitude><latitude>radius m|km|ft|mi 以给定的经纬度为中心,
找出某一半径内的元素
经度 纬度 距离 单位
(2)实例

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之墨_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值