《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