Redis原理/协议及使用

数据结构丰富

高性能

数据存储全内存

支持持久化

支持master-slave热备

支持事务

支持集群

单进程/线程

基于epoll 非阻塞网络io

数据类型

  1. string
    1. 二进制安全,动态扩容,提前动态分配,所需两边分配
  2. list
    1. 快速双向链表 lpush rpush lpop rpop 
  3. set
    1. dict 哈希表实现 查找 删除高效,好友列表,是否关注,好友推荐,来源业务,来源ip
  4. sorted set
    1. score 值排序,查找 删除高效,排行榜,学生成绩
  5. hash
    1. field-value 映射表 查询/修改高效,
  6. bitmap
    1. 连续二进制bit数组,最近n天登陆情况,属性标签,
  7. geo
    1. 二维经纬度->一维52bit整数编码(score)
  8. hypperloglog
    1. 计数统计,海量数据统计,稀疏矩阵,稠密矩阵(12kb)

协议分析

  1. RESP 二进制安全协议,实现简单,快速解析,方便阅读
  2. ping-pong
  3. pipeline
  4. pub/sub
  5. inline command
  6. arrays

系统架构

  1. 事件处理 aeEventloop
    1. io多路复用监听多个socket
      1. evport epoll kqueue select
    2. 时间事件
  2. 数据管理
    1. 支持多db
  3. 功能扩展
  4. 系统扩展
原文地址:https://www.cnblogs.com/gaoqing502/p/12930466.html