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 可以做什么

  1. 缓存。( Redis 提供了键过期时间设置)
  2. 排行榜系统。( Redis 提供了列表 list 和有序集合 set 数据结构)
  3. 计数器应用。( Redis 提供了计数功能 incrdecr
  4. 社交网络。(赞/踩、粉丝、共同好友/喜好)
  5. 消息队列。( Redis 提供了列表 listrpush, blpop 命令 )

Redis 不可以做什么

  1. Redis 基于内存,不能做存储。
  2. 避免用 Redis 来缓存冷数据。
0%