博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【 Redis开发与运维】第3章 读书笔记
阅读量:3960 次
发布时间:2019-05-24

本文共 2235 字,大约阅读时间需要 7 分钟。

第3章 小功能大用处

3.1 慢查询分析

两个参数

  1. slowlog-log-slower-than:单位是微秒,默认是10000
  2. slowlog-max-lan:列表最大长度

3.2 Redis Shell

3.2.1 redis-cli

  1. redis-cli -r(repeat):执行多次。
  2. redis-cli -i(interval):每隔几秒执行一次命令。
  3. redis-cli -x:从标准输入读取数据作为 redis-cli 最后一个参数。
  4. redis-cli -c(cluster):连接 Redis Cluster 时使用。
  5. redis-cli -a(auth):配置了密码时使用。
  6. redis-cli --scan,–pattern:用于扫描指定模式的键,相当于使用 scan 命令。
  7. redis-cli --slave:把当前客户端拟做当前 Redis 节点的从节点。
  8. redis-cli --rdb:生成 RDB 持久化文件,保存在本地。
  9. redis-cli --pipe:用于将命令封装成 Redis 通信协议定义的数据格式。
  10. redis-cli --bigkeys:使用 scan 命令对 Redis 的键进行采样,从中找到内存占用比较大的键。
  11. redis-cli -eval:用于执行指定脚本。
  12. redis-cli -latency:检测网络延迟
  13. redis-cli -stat:实时获取 Redis 重要的统计信息。
  14. redis-cli --raw,–no-row:要求命令返回的结果必须是(不是)原始格式。

3.2.2 redis-server

3.2.3 redis-benchmark

3.3 Pipeline

原生批量命令与Pipeline对比:

原生批量命令 Pipeline
原子性 非原子的
一个命令对应多个key 支持多个命令
Redis 服务端实现 Redis 服务端,客户端共同实现

不能滥用Pipeline

3.4 事务与Lua

3.4.1 事务

multi~~~exec #执行事务discard #取消事务watch #监听

Redis 不支持回滚功能

3.4.2 Lua 语法

3.4.3 Redis 与 Lua

eval

evalsha

Lua 脚本功能的三个好处:

  1. 原子执行
  2. 定制命令
  3. 减少网络开销

脚本管理操作:

  1. script load script
  2. script exists shal
  3. script flush
  4. scropt kill

3.5 Bitmaps

  • Bitmaps 本身不是一种数据结构,实际上就是字符串,但是它可以对字符串的进行操作。
  • 可以把 Bitmaps 想象成以位为单位的数组,数组的下标在 Bitmaps 称为偏移量。

命令:

  1. 设置值
setbit key offset value
  1. 获取值
getbit key offset
  1. 获取 Bitmaps 指定范围为1的个数
bitcount key [start end]
  1. Bitmaps 之间的运算
bitop op destkey key [key...]
  1. 计算 Bitmaps 中第一个值的偏移量
bitpos key targetBit [start] [end]

3.6 HyperLogLog

不是一种数据结构,而是一种基数算法

集合操作。

三个命令:

pfaddpfcountpfmerge

HyperLogLog 内存占用很少,但是存在一定的误差,官方说法是0.81%。

3.7 发布订阅

命令:

  1. 发布消息
publish channel message
  1. 订阅消息
subscribe channel [channel...]
  • 客户端在执行订阅命令后进入订阅状态,只能接收 subscribe,psubscribe,unsubscribe,punsubscribe。的四个命令

  • Redis 不会对发布的消息进行持久化。

  1. 取消订阅
unsubscribe [channel [channel...]]
  1. 按照模式订阅和取消订阅
psubscribe pattern [pattern...]punsubscribe pattern [pattern [pattern...]]
  1. 查询订阅
pubsub channels [pattern]

3.8 GEO

地理信息定位

命令:

  1. 添加地理位置信息
geoadd key longitude latitude member [longitude latitude member...]
  1. 获取地理位置信息
geopos key member [member...]
  1. 计算两个位置之间的距离
geodist key member1 member2 [unit]

unit 代表返回加过的单位

  • m:米
  • km:千米
  • mi:英里
  • ft:尺
  1. 获取指定位置范围内的地理位置信息集合
georadius key longitude latitude georadiusbymember key member radiusm [unit]
  1. 获取 geohash
geohash key member [member...]
  1. 删除地理位置信息
zrem key member

GEO 没有提供删除成员的命令,因为 GEO 底层实现是zset,所以可以借用 zrem 命令实现地理位置信息的删除操作。

转载地址:http://olqzi.baihongyu.com/

你可能感兴趣的文章
网络后台开发面试题目
查看>>
Linux 共享内存限制的查看与设置
查看>>
进程的状态转换
查看>>
如何查看进程的信息(线程数)
查看>>
read的用法
查看>>
查看系统信息(cpu,内存,硬盘,网卡)
查看>>
awk的混合编程
查看>>
awk编程
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
默认shell的修改
查看>>
Linux中的chage命令
查看>>
linux-详细解析密码文件passwd与shadow
查看>>
su- 与su的区别
查看>>
linux下发邮件mail
查看>>
/etc/group与/etc/gshadow文件解析
查看>>
echo如何手动输出换行
查看>>
linux下join连接
查看>>
身份证的正确使用方法——非常重要的知识
查看>>
ExtJS & Ajax
查看>>
Tomcat在Windows下的免安装配置
查看>>