- Redis 提供5种数据结构, 每种数据结构都有多种内部编码实现。
- 纯内存存储、IO 多路复用技术、单线程架构是造就 Redis 高性能的三个因素。
- 由于 Redis 的单线程架构, 所以需要每个命令能被快速执行完, 否则会存在阻塞 Redis 的可能, 理解 Redis 单线程命令处理机制是开发和运维 Redis 的核心之一。
- 批量操作 (例如 mget、mset、hmset 等) 能够有效提高命令执行的效率, 但要注意每次批量操作的个数和字节数。
- 了解每个命令的时间复杂度在开发中至关重要, 例如在使用 keys、hgetall、smembers、zrange 等时间复杂度较高的命令时, 需要考虑数据规模对于Redis的影响。
- persist 命令可以删除任意类型键的过期时间, 但是 set 命令也会删除字符串类型键的过期时间, 这在开发时容易被忽视。
- move、dump+restore、migrate 是 Redis 发展过程中三种迁移键的方式, 其中 move 命令基本废弃, migrate 命令用原子性的方式实现了 dump+restore, 并且支持批量操作, 是 Redis Cluster 实现水平扩容的重要工具。
- scan 命令可以解决 keys 命令可能带来的阻塞问题, 同时 Redis 还提供了 hscan、sscan、zscan 渐进式地遍历hash、set、zset。