1、Redis 特性
1、速度快
- Redis 的所有数据都是放在内存中的。
- Redis 是 C 语言实现的。
- Redis 使用单线程架构,避免多线程环境上下文切换。
2、基于键值对的数据结构服务器
Redis 主要提供五种基本数据结构:string
(字符串)、hash
(哈希)、list
(列表)、set
(集合)、zset
(有序集合),还提供 Bitmaps
(位图)、HyperLogLog
(基数统计算法)、GEO
(地理位置)高级数据结构。
3、丰富的功能
- 提供了键过期功能,可以用来实现缓存。
- 提供了发布订阅功能,可以用来实现消息系统。
- 支持
Lua
脚本功能,可以利用Lua
创造新的 Redis 命令。 - 提供了简单事务功能。
- 提供了
Pipeline
(流水线)功能。
4、简单稳定
早期的 Redis 源码只有两万行,3.0 版本后添加了集群特性,代码增到 5 万行左右,Redis 自己实现了事件处理功能。
5、客户端语言多
Redis 提供了简单的 TCP
通信协议,主流的编程语言都有其客户端实现。
6、持久化
Redis 提供了 AOF 、 RDB 两种持久化方式。
7、主从复制、高可用和分布式
Redis Sentinel 、Redis Cluster
2、Redis 使用场景
Redis 可以做什么
- 缓存。( Redis 提供了键过期时间设置)
- 排行榜系统。( Redis 提供了列表
list
和有序集合set
数据结构) - 计数器应用。( Redis 提供了计数功能
incr
、decr
) - 社交网络。(赞/踩、粉丝、共同好友/喜好)
- 消息队列。( Redis 提供了列表
list
的rpush
,blpop
命令 )
Redis 不可以做什么
- Redis 基于内存,不能做存储。
- 避免用 Redis 来缓存冷数据。