# Redis 基础

Redis 基础知识

# 什么是 Redis

Redis 是一个基于 C 语言开发的开源 NoSQL 数据库。与传统数据库不同的是,Redis 的数据是保存在内存中的(内存数据库,不过也支持持久化),因此读写速度非常快,每秒可以处理超过 10 万次读写操作,被广泛应用于分布式缓存方向。

并且,Redis 还支持事务、持久化、Lua 脚本、发布订阅模型、多种开箱即用的集群方案(Redis Sentinel、Redis Cluster)。

# Redis 的数据结构

Redis 存储的是 Key-Value 键值对,因此说到数据结构,我们需要分别看下 Key 和 Value 的数据结构。

# Key

首先,对于 Key 来说,Key 一定为字符串类型。但是,虽然一定是字符串,但是 Redis 对字符串的解释很灵活,它可以包含任何形式的数据,包括二进制数据,并且最大可以支持 512MB 的长度,这意味着 Key 可以包含空格,特殊字符,二进制数据甚至是非 UTF-8 编码的字符串。

但是,为了方便管理和避免潜在的问题,一般建议使用有意义的名字来帮助理解 Key 所代表的含义,并且在 Key 名称中通过分隔符(一般为冒号)来对不同的概念进行分割,例如 user:1234:orders

# Value

为了满足不同的业务场景,Redis 内置了多种数据类型实现,其中:

  • 常用的简单类型有 5 种:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)
  • 常用的特殊类型有 4 种:Bitmap(位图)、HyperLogLog(基数统计)、Geospatial(地理位置)、Stream(流)