《redis开发与运维》学习笔记

一:慢查询分析

两个参数:slowlog-log-slower-than:预设阀值,单位微妙,=0所有,<0不会

                 slowlog-max-len说明了慢查询日志最大容量,超过会挤出前面的,队列形式

修改参数方法:修改配置文件,用config set命令动态修改。

config set slowlog-log-slower-than 20000
config set slowlog-max-len 1000
config rewrite

1,获取慢查询日志:slowlog get [n]

2,获取慢查询日志列表当前的长度:slowlog len

3,日志重置:slowlog reset

二:redis shell

1,redis-cli

-r:代表将命令执行多次,eg:-r 3 ping

-i:代表每隔几秒执行一次命令,必须是和-r一起使用,eg:-r 5 -i 1 ping

-x:代表从标准输入读取数据作为cli的最后一个参数

-c:连接redis cluster节点时用,防止moved和ask异常

-a:不需要手动输入auth命令

--scan和--pattern:扫描指定模式的键

--slave:把当前客户端模拟成当前reids的从节点

--rdb:请求redis实例生成并发送rdb持久化文件。备份。

--pipe:将命令封装成redis通信协议定义的数据格式,批量给redis执行。

--bigkeys:使用scan命令对redis的键进行采样,找占用内存大的键值。

--eval 执行指定lua脚本。

--latency:--latency、--latency-history、--latency-dist都可以检测网络延迟

--stat 可以实时获取redis的重要统计信息

--no-raw:要求命令的返回结果必须是原始的格式,--raw相反

2:redis-servser

redis-server除了启动redis外,还有一个--test-memory选项。redis-server--test-memory可以用来检测当前操作系统能否稳定地分配指定容量的内存给Redis,通过这种检测可以有效避免因为内存问题造成Redis崩溃

3:redis-benchmark

redis-benchmark可以为reds做基准性能测试。

-c 代表客户端的并发数量(默认50)

-n<requests>:-n(num) 代表客户端请求总量(默认100000)

-q:显示requests per second信息

-r:插入随机的键

-p代表请求pipeline的数据量(1)

-k 代表是否使用keepalive,1为使用,0为不使用,默认值为1

-t 可以对指定命令进行基准测试

--csv:将结果按照csv格式输出,

三:Pipeline

概念:Pipeline流水线机制能将一组命令进行组装,一次性传输给redis,再将结果一次性返回。

与原生批量区别:原生批量是原子的,Pipeline是非原子性的。

                            原生是一个命令对应多个Key,Pipeline支持多个命令。

                            原生是服务端支持实现的,而P是需要服务客户端共同实现

四:事务

1,事务:将一组命令放在multi与exec之间,multi是事务开始,exec是事务结束

五:Bitmaps

1,数据结构模型

Bitmaps本身不是一种数据结构,实际上它就是字符串,但是它可以对字符串的位进行操作。

命令:setbit key offset value

           gitbit  key  offset

六 : HyperLogLog 数据结构

七:发布订阅

发布消息:publish channel : sports "message"

订阅消息:subscribe channel:sports (可订阅多个)

客户端进行订阅状态只能接收subscribe,psubscribe,unsubscribe,punsubscribe命令

取消订阅:unsubcribe channel : sports

按照模式订阅和取消订阅:psubscribe,punsubscribe

查询订阅:查看活跃频道:pubsub channels

 查看频道订阅数:pubsub numsub channel :sport

查看模式订阅数:pubsub numpat

八:GEO(地理信息定位)

1添加地理位置:geoadd key latitude longitude member

ongitude latitude member 分别是 经度 纬度 成员

2获取地理位置:geopos key member

3获取距离: geodist key member1 member2 [unit]单位

删除:zrem key member