Redis 是一个基于内存的键值存储数据库,它的主要特点包括:
-
高性能:Redis 将所有数据存储在内存中,读写速度极快,单机可以达到每秒 10 万次以上的操作。
-
丰富的数据结构:Redis 支持多种数据类型,包括 String(字符串)、Hash(哈希)、List(列表)、Set(集合)、ZSet(有序集合)、Bitmap(位图)、HyperLogLog(基数统计)、Geo(地理位置)等。
-
持久化支持:Redis 提供了两种持久化方式:
- RDB(Redis Database):在指定的时间间隔内生成数据集的时间点快照
- AOF(Append Only File):记录服务器接收到的每一个写操作命令
-
原子性操作:Redis 的所有操作都是原子性的,这意味着要么成功执行,要么完全不执行。
-
支持事务:Redis 通过 MULTI、EXEC、DISCARD、WATCH 等命令支持事务功能。
-
主从复制:Redis 支持主从复制,可以实现数据的读写分离和高可用性。
-
集群支持:Redis Cluster 提供了数据分片和自动故障转移功能,支持水平扩展。
-
发布/订阅:Redis 内置了发布/订阅消息系统,可以实现消息的广播。
-
Lua 脚本支持:Redis 支持 Lua 脚本,可以在服务器端执行复杂的操作。
-
内存优化:Redis 使用了多种内存优化技术,如共享对象、压缩列表等,可以有效减少内存使用。
Redis 通常被用作缓存、会话存储、消息队列、排行榜、计数器、实时分析系统等场景。由于其高性能和丰富的数据结构,Redis 已经成为现代应用架构中不可或缺的组件之一。