Redis运维和开发学习笔记(1) Redis简介

Redis的特性

速度快

性能:10w ops(每秒10w次读写)

  • Redis 使用内存(寄存器>一级缓存>二级缓存>内存>本地磁盘>远程磁盘)

持久化

特点:断电不丢失数据

  • Redis将数据保存在内存,将更改数据异步保存在磁盘

多种数据结构

BitMap
GEO:地理位置定位
HyperLogLog:粗略的唯一计数

主从复制

高可用和分布式

  • Redis-Sentinel高可用
  • Redis-Cluster分布式

典型的应用场景

  • 缓存系统
    • 一个用户访问一个APP Server —> 缓存 —> Storage
  • 计数器
    • 视频播放,点击次数进行计数
  • 消息队列系统
  • 排行榜
  • 实时系统

Redis启动和可执行文件

Redis可执行文件说明

redis-serverRedis服务器
redis-cli RedisRedis命令行客户端
redis-check-aofAOF文件修复工具
redis-check-dumpRDB文件检查工具
redis-sentinel SentinelSentinel服务器

启动方式

redis-server --port 6379(默认端口)
redis-server configPath
redis-cli -h (ip) -p (port)

验证redis

ps -ef | grep redis
netstat -antpl | grep redis
redis -cli -h (ip) -p (port) ping

redis常用配置

daemonize默认no(不以守护进程启动)
port6379
logfileRedis系统日志
dirRedis工作目录

redis数据结构和内部编码

在这里插入图片描述

Redis是单线程,不会同时执行两条命令

  • 为什么redis的单线程很快
    • 纯内存–主要原因
    • 非阻塞IO(epoll多路复用)
    • 单线程避免了线程切换和静态消耗
  • 一次只运行一条命令
  • 不使用慢命令(keys,flushall,flushdb,slow lua script, mutil/exec, operate big value(collection)
  • 不是单线程
    • fysnc file descriptor

哈希

慢查询

  • 客户端请求的生命周期

    • 发送命令
    • 排队
    • 执行命令(慢查询发生的时间)
    • 返回结构
  • 两个配置

    • slowlog-max-len
    1. 先进先出的队列
    2. 固定长度
    3. 保存在内存
    • slowlog-log-slower-than
      1. 慢查询阈值
      2. =0, 记录所有命令
    • 配置方案
      • config get slowlog-max-len = 128
      • config get slowlog-log-slower-than = 10000
      • 动态配置
      • config set slowlog-max-len = 128
      • config set slowlog-log-slower-than = 10000
  • 三个命令

    • slowlog get [n]: 获取慢查询队列
    • slowlog len: 获取慢查询队列长度
    • slowlog reset: 清空慢查询队列
  • 运维经验

    • slowlog-max-len通常为1ms
    • slowlog-log-slower-than通常1000
    • 理解命令的生命周期
    • 定期持久化慢查询日志(方便后期查询历史)

pipeline

  • 什么是流水线?
    • 一次网络携带多条命令。
    • redis的命令式微妙级别
    • pipeline每次条数要控制(网络)
      光速=3*108米/秒=30000公里/秒距离=1300公里
      光纤传输速度≈光速的2/3
      一次命令传输时间=(1300*2)/(300000*2/3)=13毫秒
      执行一条命令几微妙,执行一条网络要13毫秒。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值