Redis 知识点

描述

  • 高性能 key-value 内存 数据结构 存储系统
  • 作用:数据库、缓存、消息中间件

redis命令

数据结构

  • strings 字符串

    • 格式: set key value
    • string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
    • string类型是Redis最基本的数据类型,一个键最大能存储512MB。
  • hashes 散列

    • 格式: hmset key field value1 field value2
    • Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
    • Redis hash是一个键值(key=>value)对集合。
    • key field value 灵活度高,
    • 场景:购物车 key=cart:1000 field=P_1000 value=1,购物车自增hincrby 原子性自增
  • lists 列表: 按插入顺序排序的字符串元素的集合, 链表

    • 格式: LPUSH/RPUSH key value
    • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(LPUSH)或者尾部(RPUSH)
    • 场景:队列、堆栈、生产者消费者(堵塞操作, 减少操作)
    • 模式:安全队列,lpush->brpoplpush 或者使用RocketMQ
  • sets 集合,string无序集合排列唯一,取交集并集差集,随机取

    • 格式: SADD key value
  • sorted sets 有序合计

    • 格式 ZADD key score value
    • score: double类型
  • bitmaps
  • hyperloglos

    • 是用来做基数统计的算法
    • 在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
  • geo 地理位置

Pub/Sub

  • 发布/订阅消息范式
  • 发布:PUBLISH channel value
  • 订阅:SUBSCRIBE channel1 channel2
  • 取消:UNSUBSCROBE channel1 channel2
  • 匹配订阅:PSUBSCRIBE channel1 channel2
  • 匹配取消:PUNSUBSCROBE channel1 channel2

持久化

  • RDB: Redis Database

    • 按照更新间隔周期,保存rdb数据文件
  • AOF: Append-only file

    • 每当服务执行命令式,追到保存到aof文件中
  • 对比

    • aof更新频率更高,更加安全
    • rdb性能好
    • 同时启用,有限aof,数据安全完整

架构

  • 单机
  • 主从 Master/Slave
  • 哨兵 Redis sentinel 分布式Master/Slave

    • 官方文档
    • 监控(Monitoring)
    • 提醒(Notification)
    • 自动故障迁移(Automatic failover)
  • 集群 redis-cluster

    • 多个Redis间节点间共享数据
    • 哈希槽: 16384个哈希槽,每个key通过CRC16校验后对16384取模
    • 并不能强一致性。问题:主从复制,网络分区
    • redis集群搭建

未整理

  • replication 复制

    • 主从复制
  • LUA 脚本
  • LUR驱动事件
  • transactions 事务
  • persistence 持久化

    • RBD:时间间隔,快照存储
    • AOF:记录每次服务器的操作。
    • 可同时开始,恢复时优先AOF
  • cluster 分区

嗷嗷豆豆
15 声望0 粉丝

不断学习的中的一枚小菜鸟!