04-redis其他相关命令

redis的其他功能
1.慢查询
2.pipeline
3.发布订阅
4.bitmap
5.hyperloglog
6GEO

3.发布订阅
3.1 角色
发布者(publisher)
订阅者(subscriber)
频道(channel)

3.2 模型
发布者发布一条消息到redis server中,订阅该频道的每一个订阅者都可以收到该条消息。
3.3 API
publish:
publish channel message
publish sohu:tv “hello world” 返回订阅者的个数
publish sohu:auto “hello” 如果该频道没有订阅者则结果返回0

subscribe:
subscribe [channel] #订阅一个或者多个频道
subscribe sohu:tv

unsubscribe:
unsubscribe [channel] # 取消订阅
unsubscribe sohu:tv 取消订阅。

其他:
psubscribe [pattern…] #订阅模式

punsubscribe [pattern…] 退订指定的模式

pubsub channels #列出至少有一个订阅者的频道

pubsub numsub [channel…]列出给定频道的订阅者数量

pubsub numpat #列出被订阅模式的数量

发布订阅总结:
发布订阅模式中的角色
重要的API
消息队列和发布订阅之间的区别
发布新闻:1对n
抢红包:1对1

3.4 发布订阅与消息队列

4.bitmap
4.1位图

字符串big对应的二进制(ASCI码)
b:01100010
i:01101001
g:01100111

set hello big
getbit hello 0 返回结果为0
getbit hello 1 返回结果为1
getbit hello 8 返回结果为0
getbit hello 9 返回结果为1

setbit:
setbit key offset value # 给出位图指定索引设置

getbit:
getbit key offset # 获取位图指定索引的值

bitcount:
bitcount key [start end] #获取位图指定范围(start 到end,单位为字节
如果不指定就是获取全部) 位置为1 的个数。

bitop op destkey key [key…] 做多个Bitmap的and(交集),or(并集),
not(非),xor(异或)操作,并将结果保存在destkey中。

bitpos:
bitpos key targetBit [start] [end] 计算位图指定范围(start到end,单位
为字节,如果不指定就是获取全部)第一个偏移量对应的值等于targetBit的位置。

4.2独立用户统计
1.使用set和Bitmap
2.一亿用户,五千万独立

使用经验:
type =string 最大512MB
注意setbit时的偏移量,可能有较大消耗
位图不是绝对好

4.3相关命令

5.hyperloglog

5.1是否是新型数据结构?
hyperloglog算法:极小空间完成独立数量统计。
本质还是字符串

5.2内存消耗

5.3三个命令
pfadd key element[element…]:向hyperloglog添加元素
pfcount key [key…]:计算 hyperloglog 的独立总数
pfmerge destkey sourcekey [sourcekey…]:合并多个 hyperloglog

5.4使用经验
1.是否能容忍错误?(错误率:0.81%)
2.是否需要单条查询?

6GEO(地理信息定位)
GEO是什么?
6GEO(地理信息定位):
存储经纬度,计算两地距离,范围计算等。

应用场景:

相关命令?
geoadd :
geoadd key longitude latitude member [longitude latitude member…]
#增加地理位置信息
geoadd cities:locations 116.28.39.55 beijing

geopos key member[member…] #获取地理位置信息

geodist key member1 member2 [unit] #获取两个丽丽位置的距离
unit:m(米),km(千米),mi(英里),ft(英尺)

georadius
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]

以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。

范围可以使用以下其中一个单位:

m 表示单位为米。
km 表示单位为千米。
mi 表示单位为英里。
ft 表示单位为英尺。
在给定以下可选项时, 命令会返回额外的信息:

WITHDIST : 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。
WITHCOORD : 将位置元素的经度和维度也一并返回。
WITHHASH : 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
命令默认返回未排序的位置元素。 通过以下两个参数, 用户可以指定被返回位置元素的排序方式:

ASC : 根据中心的位置, 按照从近到远的方式返回位置元素。
DESC : 根据中心的位置, 按照从远到近的方式返回位置元素。
在默认情况下, GEORADIUS 命令会返回所有匹配的位置元素。 虽然用户可以使用 COUNT  选项去获取前 N 个匹配元素, 但是因为命令在内部可能会需要对所有被匹配的元素进行处理, 所以在对一个非常大的区域进行搜索时, 即使只使用 COUNT 选项去获取少量元素, 命令的执行速度也可能会非常慢。 但是从另一方面来说, 使用 COUNT 选项去减少需要返回的元素数量, 对于减少带宽来说仍然是非常有用的。

相关说明:
可用版本:

= 3.2.0
type geoKey = zset
没有删除API: zrem key member

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值