什么是Redis
Redis(Remote Dictionary Server)是一个开源的内存数据库,遵守 BSD 协议,它提供了一个高性能的键值(key-value)存储系统,常用于缓存、消息队列、会话存储等应用场景。
- 性能极高:Redis 以其极高的性能而著称,能够支持每秒数十万次的读写操作24。这使得Redis成为处理高并发请求的理想选择,尤其是在需要快速响应的场景中,如缓存、会话管理、排行榜等。
- 支持分布式,理论上可以无限扩展
- 丰富的数据类型:Redis 不仅支持基本的键值存储,还提供了丰富的数据类型,包括字符串、列表、集合、哈希表、有序集合等。这些数据类型为开发者提供了灵活的数据操作能力,使得Redis可以适应各种不同的应用场景。
- 原子性操作:Redis 的所有操作都是原子性的,这意味着操作要么完全执行,要么完全不执行。这种特性对于确保数据的一致性和完整性至关重要,尤其是在高并发环境下处理事务时。
- 持久化:Redis 支持数据的持久化,可以将内存中的数据保存到磁盘中,以便在系统重启后恢复数据。这为 Redis 提供了数据安全性,确保数据不会因为系统故障而丢失。
- 支持发布/订阅模式:Redis 内置了发布/订阅模式(Pub/Sub),允许客户端之间通过消息传递进行通信。这使得 Redis 可以作为消息队列和实时数据传输的平台。
Redis通用命令
字符串操作
- 设置指定key的值
SET key value
- 获取指定key的值
GET key
- 设置指定key的值,并将key 的过期时间设为 seconds 秒
SETEX key seconds value
- 只有在 key 不存在时设置 key 的值
SETNX key value
哈希操作
- 将哈希表 key 中的字段 field 的值设为 value
HSET key field value
- 获取存储在哈希表中指定字段的值
HGET key field
- 删除存储在哈希表中的指定字段
HDEL key field
- 获取哈希表中所有字段
HKEYS key
- 获取哈希表中所有值
HVALS key
列表操作
- 将一个或多个值插入到列表头部
LPUSH key value1 [value2]
- 获取列表指定范围内的元素
LRANGE key start stop
- 移除并获取列表最后一个元素
RPOP key
- 获取列表长度
LLEN key
集合操作
- 向集合添加一个或多个成员
SADD key member1 [member2]
- 返回集合中的所有成员
SMEMBERS key
- 获取集合的成员数
SCARD key
- 返回给定所有集合的交集
SINTER key1 [key2]
- 返回所有给定集合的并集
SUNION key1 [key2]
- 删除集合中一个或多个成员
SREM key member1 [member2]
有序集合操作
- 向有序集合添加一个或多个成员
ZADD key score1 member1 [score2 member2]
- 通过索引区间返回有序集合中指定区间内的成员
ZRANGE key start stop [WITHSCORES]
- 有序集合中对指定成员的分数加上增量increment
ZINCRBY key increment member
- 移除有序集合中的一个或多个成员
ZREM key member [member …]
通用命令
- 查找所有符合给定模式( pattern)的 key
KEYS pattern
- 检查给定 key 是否存在
EXISTS key
- 返回 key 所储存的值的类型
TYPE key
- 该命令用于在 key 存在是删除 key
DEL key