Redis读书笔记

Redis的特点

  • 纯内存的访问,所有数据存到内存中
  • 非阻塞I/O
  • 单线程避免了线程切换和竞态产生的消耗,但也有缺点,如果有命令执行时间过长,会造成数据库阻塞

慢查询

  • slowlog-log-slower-than预设阀值,它的单位是微秒(1秒=1000毫秒=1000000微秒),默认值是10000。slowlog-log-slower-than=0会记录所有的命令,slowlog-log-slowerthan<0对于任何命令都不会进行记录。
  • 实际上Redis使用了一个列表来存储慢查询日志,slowlog-max-len就是列表的最大长度
  • 慢查询只记录命令执行时间, 并不包括命令排队和网络传输时间。 因此客户端执行命令的时间会大于命令实际执行时间
  • 由于慢查询队列是先进先出的队列,所以要定期将日志记录下来,已被查验

Redis Shell

Redis-cli

-h 服务端ip
-p 端口
-r (repeat)将命令执行多次。redis-cli -r 3 ping 
-i (interval)每个几秒执行几次。redis-cli -r 5 -i 1 ping 
-a (auth)密码
--slave。将当前客户端模拟成服务端的从节点。
--rdb。生成RDB持久化文件,保存到本地。可用来做持久化文件的定期备份
--eval。执行lua脚本
--latency。测试客户端到目标redis服务的网络延迟;--latency-history,每隔多久输出一次网络延迟;--latency-dist,使用统计图表的形式从控制台输出延迟统计信息
--stat。实时获取redis的重要统计信息。key的数量、内存占用量、客户端数量、请求数量、连接数量

Redis-server

1.启动redis
2.redis-server --test-memory 1024。检测当前操作系统能否稳定地分配指定容量的内存给Redis

redis-benchmark

可以为Redis进行基准性能测试

-c。代表客户端的并发数量(默认是50) 
-n(num) 。代表客户端请求总量(默认是100000) 。redis-benchmark-c100-n20000代表100各个客户端同时请求Redis, 一共执行20000次 
-r(random) 选项, 可以向Redis插入更多随机的键
--csv选项会将结果按照csv格式输出, 便于后续处理, 如导出到Excel等

Pipeline

原生批量命令和Pipeline对比。

  • 原生批量命令是原子的,Pipeline是非原子的
  • 原生批量命令是一个命令对应多个key,Pipeline支持多个命令。
  • 原生批量命令是Redis服务端支持实现的,而Pipeline需要服务端和客户端的共同实现


Pipeline(流水线)机制能将一组Redis命令进行组装,通过一次RTT传输给Redis,
再将这组Redis命令的执行结果按顺序返回给客户端

性能测试。执行速度一般比逐条执行要快,客户端和服务端的网络延迟越大,
Pipeline的效果越明显

一次组装Pipeline数据量过大, 一方面会增加客户端的等待时间, 另一方面会造成一定的网络阻塞,
可以将一次包含大量命令的Pipeline拆分成多次较小的Pipeline来完成
Pipeline只能操作一个Redis实例

Redis事务

  • 简单事务功能,multi和exec命令之间的命令,能够原子顺序执行。

  • 如果事务之中存在命令拼写错误,整个事务不会执行;如果存在运行时错误,事务并不会回滚(这点需要注意)

  • watch命令,是事务执行之前,确保事务中的key没有被其他客户端修改过,修改过的话就不执行事务。类似于乐观锁

  • Redis的事务比较简单,无法保证事务回滚,无法实现事务内命令之间的逻辑运算

Bitmaps 和 HyperLogLog

  • Bitmaps本身的数据结构就是字符串,支持对字符串的位进行操作。
  • HyperLogLog 则是对同样位操作,但是采用一种特别的算法,节省磁盘占用量,
    但是会有一定的误差率

发布订阅

发布消息。publish channel message 。
订阅消息。subscribe channel [channel ...]。多个客户端订阅同一个频道,都会受到消息推送,类似于广播。
取消订阅。unsubscribe [channel [channel ...]]
按照模式订阅和取消订阅。psubscribe pattern [pattern...];punsubscribe [pattern [pattern ...]]
订阅查询。pubsub channels [pattern],查看活跃的频道;pubsub numsub [channel ...],查看频道订阅数;pubsub numpat,查看模式订阅数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值