博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis运维和开发学习笔记(1) Redis简介
阅读量:2489 次
发布时间:2019-05-11

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

文章目录

Redis的特性

速度快

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

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

持久化

特点:断电不丢失数据

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

多种数据结构

BitMap

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

主从复制

高可用和分布式

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

典型的应用场景

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

Redis启动和可执行文件

Redis可执行文件说明

redis-server Redis服务器
redis-cli Redis Redis命令行客户端
redis-check-aof AOF文件修复工具
redis-check-dump RDB文件检查工具
redis-sentinel Sentinel Sentinel服务器

启动方式

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(不以守护进程启动)
port 6379
logfile Redis系统日志
dir Redis工作目录

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毫秒。

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

你可能感兴趣的文章
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>
Sqoop往Hive导入数据实战
查看>>
Mysql到HBase的迁移
查看>>
Sqoop import进阶
查看>>
Hive语句是如何转化成MapReduce任务的
查看>>
Hive创建table报错:Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x
查看>>
Hive执行job时return code 2排查
查看>>
hive常用函数及数据结构介绍
查看>>
Hive面试题干货(亲自跟着做了好几遍,会了的话对面试大有好处)
查看>>
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>
力扣题解-123. 买卖股票的最佳时机 III(动态规划)
查看>>
Django 源码阅读:服务启动(wsgi)
查看>>