一、简单介绍
Redis 是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。它支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等。Redis 提供高性能的数据访问速度,因为它的数据存储在内存中,并且可以通过持久化机制将数据保存到磁盘上,以防止数据丢失。
二、主要特性
内存存储:主要数据存储在内存中,访问速度快。
持久化:支持RDB和AOF两种持久化方式,确保数据不会丢失。
高可用性:通过Redis Sentinel和Redis Cluster实现高可用性。
原子操作:Redis的所有操作都是原子性的,保证了数据的一致性。
丰富的数据类型:支持多种数据类型,包括但不限于字符串、列表、集合、有序集合、散列等。
发布/订阅:支持消息发布和订阅功能。
事务:支持事务功能,可以执行多个命令的原子性操作。
Lua脚本:支持使用Lua脚本进行复杂的数据处理。
客户端库:有多种语言的客户端库,方便不同语言的开发者使用。
三、用法示例
安装 Redis:
- 你可以从 Redis 官网下载并编译安装,或者使用包管理器(如 apt-get, yum, brew 等)安装。
启动 Redis 服务器:
redis-server
使用命令行与 Redis 交互:
连接到 Redis 服务器:
redis-cli
设置一个键值对:
SET mykey "Hello"
获取键的值:
GET mykey
使用 Redis 作为缓存:
存储缓存数据:
SET cache_key "cache_value"
从缓存中获取数据:
GET cache_key
使用 Redis 存储会话信息:
存储会话数据:
HSET session:1234 user_id 1
HSET session:1234 last_activity "2024-08-19 12:00:00"
获取会话数据:
HGETALL session:1234
使用 Redis 作为消息队列:
发送消息到列表:
LPUSH queue "message"
从列表中接收消息:
BRPOP queue 0
使用 Redis 进行数据聚合:
使用集合(Set)存储唯一数据:
SADD myset "value1"
SADD myset "value2"
获取集合中的所有元素:
SMEMBERS myset
使用 Redis 排序和排名:
使用有序集合(Sorted Set)存储可排序的数据:
ZADD myzset 1 "score1"
ZADD myzset 2 "score2"
获取有序集合中的元素,按分数排序:
ZRANGE myzset 0 -1 WITHSCORES
使用 Redis 事务:
开始事务:
MULTI
执行命令:
SET key1 "value1"
SET key2 "value2"
提交事务:
EXEC
使用 Redis 持久化:
配置 RDB 持久化:
SAVE
配置 AOF 持久化:
BGSAVE