Redis高级特性

47 阅读1分钟

1.redis的慢查询

1.redis命令执行流程

2.慢查询阈值,默认10ms

config set slowlog-log-slower-then 10000 (单位微秒)设置配置文件

config rewrite 将配置文件回写并保存

3.redis慢查询日志查询

redis慢查询日志记录在 showlog 的链表中(内存队列)链表长度由 slowlog-max-len 决定,默认128

showlog get num 查询前面num条慢查询日志

1.日志标识ID 2.执行时间戳 3.执行时间 单位微秒 4.指令 5.执行IP端口 6.服务名

4.生产环境中慢查询配置建议:

1.slowlog-max-len 1000以上

2.slowlog-log-slower-then 1000

2.Pipeline 指令批量处理

RTT:往返时间(网络请求往返时间)

redis中大部分指令操作都花费在了RTT中。可以将多条指令组装成PipeLine,统一处理

3.Redis事务

redis 中的事务是一个弱事务的,只会进行语法异常处理

multi  开启事务

exec   提交事务

Watch机制

4.Lua脚本语言

5.发布订阅

subscribe channel channel ... 订阅消息

publish channel mes 发布消息

这种的发布订阅是简单的,发布及忘记,容易发生消息丢失。在5.0之后新增 Stream 数据结构

1.Stream类型

消息的生产

xadd key * k v k v... key : stream的key ***** :redis生成的ID k, v : Content  消息的内容(k, v 键值对)

xrange key start(-) end(+) start, end : 消息ID

消息的消费

xread count 1 streams key 0-0

xgroup create key group_name 0-0

xreadgroup group group_name con_name count 1 streams key

缓存使用问题

1.缓存穿透

2.缓存击穿

3.缓存雪崩