Redis 学习笔记(二)- 一些小功能

上一篇文章 基础篇(一)总结了 Redis 的5种基本类型,这一篇总结下 Redis 的一些小功能。

慢查询

  • 客户端命令生命周期
    • 发送命令
    • 命令排队
    • 执行命令
    • 返回结果
  • 两个配置参数(可以通过修改redis.conf、或者命令修改)
    • slowlog-log-slower-than 预设阀值,单位为微妙(默认为:10000)
    • slowlog-max-len 最多存储多少条(默认为:128),Redis 使用一个列表来存储慢查询日志
  • 命令
    • slowlog get [n] 获取慢查询(n为可选)
    • slowlog len 获取当前慢查询日志列表的长度
    • slowlog reset 日志重置
  • 实践
    • 慢查询只记录命令执行的时间,并不包含命令排队和网络传输的时间
    • 慢查询日志是一个先进先出的队列,如果慢查询日志较多,就会丢失先写入的慢查询

Redis Shell

  • redis-cli
    • -a 验证密码
    • –stat 实时监控Redis状态
  • redis-server
    • –test-memory (如: redis-server --test-memory 1024 检测当前操作系统能否非配1G的内存给Redis)
  • redis-benchmark
    • -c 客户端并发数量
    • -n 客户端请求总量
    • -q 仅展示requests per seconds 的信息
    • -k (boolean) keepalive
    • -t 对指定命令测试(redis-benchmark -t get,set -q)
    • –csv 导出excel

Pipeline

  • Redis 提供Pipeline机制,将一组命令进行组装,通过一次RTT(往返时间)发送给Redis。减少执行命令在网络上的时间消耗。
  • 下例:将set hello world 和 incr counter 两条命令组装
echo -en '*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n*2\r\n$4\r\nincr\r\ n$7\r\ncounter\r\n' | redis-cli --pipe
  • 需要注意的点
    • Pipeline 是非原子性的
    • 组装的命令不宜太多,这样会增加客户端等待时间,同时也会导致一定的网络阻塞

事务和Lua

  • multi 命令代表事务的开始,exec 命令代表事务结束,discard 命令代表事务的丢弃
  • Redis 的事务并不是真正的原子性。可以通过Lua来实现多个命令执行的原子性

Bitmaps

  • 数据结构模型
    • 实现了对位的操作
    • 基于 string 数据结构实现
  • 命令
    • setbit key offset value (offset 从0开始,返回值为修改前该位上的值)
    • getbit key offset
    • bitop op destkey key [key …] (bitmaps 间运算,and, or, not, xor)
  • 优点:节省内存空间
  • 使用场景
    • 存储网站每天的活跃用户

HyperLogLog

  • 数据结构模型
    • 基于 string 数据结构实现
  • 命令
    • pfadd key element [element …]
    • pfcount key [key …]
    • pfmerge destkey sourcekey [sourcekey …] 合并
  • 优点:节省内存空间
  • 使用场景
    • 存储网站 UV (可以和Redis的集合类比)

发布订阅

  • Redis 提供简单的发布、订阅。很少用。

GEO

  • 数据结构模型
    • 基于 zset 数据结构实现
  • 命令
    • geoadd key longitude latitude member [longitude latitude member …]
    • geopos key member [member …]
    • geodist key member1 member2 [unit]
    • geohash key member [member …]
  • 使用场景
    • 地理位置存储、计算

猜你喜欢

转载自blog.csdn.net/melody_lql/article/details/85882167