菜鸟笔记
提升您的技术认知

redis 的核心特点-ag真人官方网

一、redis 的核心特点
  1. 基于内存(in-memory)

    • 数据默认存储在内存中,读写速度极快(官方测试读速度可达 11 万次 / 秒,写速度可达 8 万次 / 秒)。
    • 缺点:内存空间有限,数据易失性(断电丢失),需通过持久化机制(rdb/aof)保证数据可靠性。
  2. 丰富的数据结构
    redis 支持多种数据结构,每种结构对应不同的应用场景:

    • 字符串(string):最简单的数据类型,用于存储单个值(如计数器、缓存用户信息)。
    • 哈希(hash):键值对的集合,适合存储对象(如用户详情:user:1 {name: "alice", age: 25})。
    • 列表(list):有序可重复的链表,支持两端插入 / 删除,用于消息队列(如任务队列)、最新列表(如朋友圈动态)。
    • 集合(set):无序唯一的元素集合,用于去重(如统计用户唯一登录数)、交集 / 并集运算(如共同关注)。
    • 有序集合(sorted set):带分数的有序集合,用于排行榜(如按分数排序的用户排名)。
    • 其他:位图(bitmap)、hyperloglog(基数统计)、地理空间(geospatial)等。
  3. 持久化机制

    • rdb(redis database):定时将内存数据快照写入磁盘,适合大规模数据的备份。
    • aof(append only file):记录每一条写命令,重启时重新执行命令恢复数据,数据安全性更高。
    • 可同时开启 rdb 和 aof,优先使用 aof 恢复数据。
  4. 线程与高性能

    • redis 基于单线程模型处理请求(基于非阻塞 i/o 多路复用技术),避免了多线程的上下文切换开销,性能卓越。
    • 单线程意味着 redis 自身不会出现线程安全问题,但需注意多个客户端并发访问时的竞争条件(可通过事务或分布式锁解决)。
  5. 原生支持集群(cluster)

    • 可通过分片(sharding)将数据分布到多个节点,支持动态扩缩容,解决单节点内存限制和高并发问题。
    • 集群模式下自动实现数据分片和故障转移,保证高可用性。
  6. 其他功能

    • 发布订阅(pub/sub):实现消息传递,用于实时通信(如实时聊天、通知系统)。
    • 事务(transaction):支持简单的事务操作,确保命令序列的原子性执行。
    • lua 脚本:支持在服务端执行 lua 脚本,减少客户端与服务端的交互次数。
    • 过期键(ttl):可为键设置过期时间,自动清理无效数据(如缓存的有效期)。
网站地图