redis慢查询、事务、发布订阅,字符串位操作

通过这这篇文章你会知道如下内容:

  • 慢查询是什么?如何配置?
  • 如何多次间隔的执行命令?如何测试redis客户端到网络端延时?如何寻找占内存较大的键?
  • 如何查看redis实时增量的统计信息
  • 如何利用lua脚本制造批量的原子命令组合,如何执行lua脚本(这个需要度娘)
  • 如何对字符串进行位操作?
  • 了解HyperLogLog如何使用以及如何节省内存(这个也需要度娘)
  • 简单的发布和订阅消息如何实现?

慢查询

redis的慢查询是分析命令执行这个步骤的执行情况

1.慢查询的配置

  • slowlog-log-slower-than 默认10000 单位微妙

如果它的执行时间超过了10000微秒, 那么它将被记录在慢查询日志中。
如果slowlog-log-slower-than=0会记录所有的命令, slowlog-log-slowerthan<0对于任何命令都不会进行记录。

  • slowlog-max-len 列表最大长度

redis是使用一个列表来存储慢查询的日志,超过列表长度,最早插入的会被移除

  • 修改慢查询配置

1、修改配置文件
2、动态设置

config set slowlog-log-slower-than 20000
config set slowlog-max-len 1000
config rewrite  持久到本地配置文件
  • 查询慢日志
    slowlog get [n]
    
日志的含义:id,时间戳 ,执行时间,执行命令和参数

日志的长度 slowlog len,,,清除日志 slowlog reset

redis-cli参数说明

  • -r (repeat) 命令执行多次 redis-cli -r 3 ping
  • -i (interval)每隔几秒执行一次,单位秒,与-r搭配使用 redis-cli -r 5 -i 1 ping
  • -x从标准输入(stdin) 读取数据作为redis-cli的最后一个参数
    echo "world" | redis-cli -x set hello
    
  • -c 连接Redis Cluster节点时需要使用的, -c选项可以防止moved和ask异常
  • -a 如果Redis配置了密码, 可以用-a(auth) 选项, 有了这个选项就不需要手动输入auth命令。
  • --bigkeys选项使用scan命令对Redis的键进行采样, 从中找到内存占用比较大的键值
  • --latency 网络延迟测试

latency有三个选项, 分别是--latency、 --latency-history、 --latency-dist
dist是图表的方式 ,history是分时输出, latency 只有一条结果

5秒输出一次
  • --stat 输出一些增量的实时统计信息
  • --no-raw选项是要求命令的返回结果必须是原始的格式, --raw恰恰相反, 返回格式化后的结果

事务

  • 将一组命令放到multi与exec之间,这之间的命令才是院子顺序执行的
  • 语法错误会造成事务无法执行,但是运行错误不会,出错之前的命令会正常执行,所以不会造成事务回滚,,redis是不支持事务回滚的
  • 在开始事务之前,如果某个值在事务执行中没有被修改,则执行事务,否则不执行,这种应用场景就可以通过watch key进行使用

Bitmaps

对字符串的位进行操作,可以看似为一种以位为单位的数组,只能存储0和1,数组的下标在Bigmaps叫做偏移量offset

  • 设置值 / 获取值
    setbit key offset value   返回的是原先的位置的值----------------------  gitbit key offset
    
  • 统计字节数直接的结果
    bitcount  key [start][end]  
    

start是代表字节数开始,setbit是操作位。1byte = 8 bit 所以统计的时候,要算好统计多少个字节,而不是位数

  • 两个bitmaps的逻辑操作
    bitop op destkey key[key....]
    

op可以是and(交集) 、 or(并集) 、 not(非) 、 xor(异或) 操作并将结果保存在destkey中

  • 计算Bitmaps中第一个值为targetBit的偏移量
    bitpos key targetBit [start] [end]   
    

[start]和[end], 分别代表起始字节和结束字节

发布和订阅

  • 发布消息与订阅消息
    publish channel message
    subscribe channel [channel ...]
    

    客户端在执行订阅命令之后进入了订阅状态, 只能接收subscribe、psubscribe、 unsubscribe、 punsubscribe的四个命令。
    新开启的订阅客户端, 无法收到该频道之前的消息, 因为Redis不会对发布的消息进行持久化。

    这种订阅和发布方式简单,如果可以接受这些缺点,可以考虑使用
    
  • 查询活跃的频道
    pubsub channels [pattern]
    
  • 查看频道的订阅数
    pubsub numsub [channel ...]
    
  • 按照模式订阅和取消订阅
模式订阅
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,423评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,147评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,019评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,443评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,535评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,798评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,941评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,704评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,152评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,494评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,629评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,295评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,901评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,978评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,333评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,499评论 2 348

推荐阅读更多精彩内容