Redis入门指南 阅读笔记 (简单整理)

原书: 李子骅. Redis入门指南(第2版)(异步图书)人民邮电出版社. Kindle 版本.

  1. Redis核心数据结构:

    1. String (字符串/二进制串)

      1. 最基本的数据类型

      2. 最大大小为512MB

      3. 所有的数据类型的基础都是二进制串

    2. HashTable (散列表)

      1. 字段到二进制串的映射, 其中二进制串不可嵌套其他类型

      2. 散列表的最大大小为2^32-1个元素

      3. 一般用于存放代码中的结构体对象, 可以保证对每个成员的原子操作

    3. List (列表)

      1. 内部结构为双向链表, 头尾操作效率高, 随机访问效率低

      2. 最长上限也是2^32-1 (4,294,967,295)

      3. 用于实现队列或者栈

    4. Set (集合/无序集合)

      1. 是键值对中值为空的散列表

      2. 上限2^32-1

      3. 用于进行集合操作, 以及判断元素是否存在

    5. SortedSet (有序集合)

      1. 由跳跃表, 散列表结合存储的数据模式. 其基于每个对象的score进行排序, 支持score重复

      2. 对于有序集合的随机访问效率较列表更高, 可以通过调整元素score大小控制元素位置

  2. Redis线程模型: 单线程模型

  3. Redis键值的一般命名格式: <对象类型>:<对象id>:<对象属性>

  4. Redis的一般功能:

    1. 数据库

    2. 缓存

    3. 消息队列

  5. Redis的进阶功能:

    1. 事务: MULTI, EXEC, WATCH三个命令

    2. 过期时间: EXPIRE, TTL, PERSIST

    3. 排序: 使用有序集合, SORT, BY, GET, STORE

    4. 消息通知: SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE

    5. 对于内存消耗的优化: 使用较短的键值, 进行Redis内部编码的设置

    6. Redis脚本: Lua脚本, 通过综合基本命令形成自定义的命令, 其运行是原子性的

    7. 内存数据持久化: RDB备份数据本身; AOF备份命令操作

  6. Redis集群:

    1. 简单集群: 只是简单的读写分离, 通过RDB进行复制初始化, 通过AOF进行请求的异步同步. 出现宕机需要手动处理

    2. 哨兵集群: 将简单集群中的宕机的手动处理通过哨兵完成, 进行自动的节点角色转换, 以及数据的同步

    3. Redis-cluster集群: 解决主从复制的横向拓展问题. 使用哈希槽进行数据的分配, 以和单体相近的性能适应大数据量环境

  7. Redis安全:

    1. Redis需要部署在可信环境, 不能直接从外网访问, 需通过软件进行隔离

    2. 对Redis设置密码进行授权访问

    3. 对于Redis的命令进行重命名以及禁用, 限制访问来源以及访问权限

  8. Redis服务器与客户端的交流协议:

    1. 简单协议: 直接是命令行的输入进行通信

    2. unified request protocol: 以与AOF相同的格式进行通信, 是进行主从复制以及进行代码库通信的主要方法

posted @ 2021-10-28 14:53  NoobSir  阅读(32)  评论(0编辑  收藏  举报