Redis 常用命令详解
Redis 是一款功能强大的键值存储数据库,其丰富的命令集是开发者高效使用 Redis 的关键。本文将聚焦于 Redis 的常见命令,通过详细的功能介绍、语法说明和实际示例,帮助你快速掌握这些命令的使用方法和应用场景。
一、字符串(Strings)命令
字符串是 Redis 最基础的数据类型,一个键对应一个值。以下是字符串命令的常用操作:
1. SET key value
-
功能:设置键的值。
-
语法:
SET key value
-
示例:
SET name "Kimi" # 设置键 name 的值为 "Kimi"
2. GET key
-
功能:获取键的值。
-
语法:
GET key
-
示例:
GET name # 返回 "Kimi"
3. INCR key
-
功能:将键的值加 1,如果键不存在,则先将其值设置为 0 再加 1。
-
语法:
INCR key
-
示例:
INCR counter # 如果键不存在,返回 1;否则返回当前值加 1
4. DECR key
-
功能:将键的值减 1,如果键不存在,则先将其值设置为 0 再减 1。
-
语法:
DECR key
-
示例:
DECR counter # 如果键不存在,返回 -1;否则返回当前值减 1
5. EXPIRE key seconds
-
功能:为键设置过期时间(以秒为单位)。
-
语法:
EXPIRE key seconds
-
示例:
EXPIRE name 3600 # 将键 name 的过期时间设置为 1 小时
6. TTL key
-
功能:查看键的剩余生存时间(以秒为单位),返回 -1 表示键没有设置过期时间。
-
语法:
TTL key
-
示例:
TTL name # 返回键 name 的剩余生存时间(秒)
二、哈希(Hashes)命令
哈希是一种键值对集合,适用于存储对象信息。以下是哈希命令的常用操作:
1. HSET key field value
-
功能:为哈希表中的字段设置值。
-
语法:
HSET key field value
-
示例:
HSET user:1 name "Kimi" age 25 # 设置用户信息
2. HGET key field
-
功能:获取哈希表中字段的值。
-
语法:
HGET key field
-
示例:
HGET user:1 name # 返回 "Kimi"
3. HGETALL key
-
功能:获取哈希表中所有字段和值。
-
语法:
HGETALL key
-
示例:
HGETALL user:1 # 返回用户的所有信息
4. HINCRBY key field increment
-
功能:将哈希表中字段的值增加指定的增量。
-
语法:
HINCRBY key field increment
-
示例:
HINCRBY user:1 age 1 # 将用户的年龄加 1
三、列表(Lists)命令
列表是一个有序的字符串集合,可以实现栈和队列的功能。以下是列表命令的常用操作:
1. LPUSH key value
-
功能:将值插入到列表头部。
-
语法:
LPUSH key value
-
示例:
LPUSH mylist "item1" # 在列表头部插入 "item1"
2. RPUSH key value
-
功能:将值插入到列表尾部。
-
语法:
RPUSH key value
-
示例:
RPUSH mylist "item2" # 在列表尾部插入 "item2"
3. LPOP key
-
功能:移除并返回列表的第一个元素。
-
语法:
LPOP key
-
示例:
LPOP mylist # 返回并移除列表的第一个元素
4. LRANGE key start stop
-
功能:获取列表中指定范围的元素。
-
语法:
LRANGE key start stop
-
示例:
LRANGE mylist 0 -1 # 获取列表中的所有元素
四、集合(Sets)命令
集合是一个无序的字符串集合,成员唯一。以下是集合命令的常用操作:
1. SADD key member
-
功能:将成员添加到集合中。
-
语法:
SADD key member
-
示例:
SADD myset "apple" "banana" # 添加成员到集合
2. SMEMBERS key
-
功能:获取集合中的所有成员。
-
语法:
SMEMBERS key
-
示例:
SMEMBERS myset # 返回集合中的所有成员
3. SREM key member
-
功能:从集合中移除成员。
-
语法:
SREM key member
-
示例:
SREM myset "apple" # 从集合中移除 "apple"
4. SISMEMBER key member
-
功能:检查成员是否在集合中,返回 1 表示存在,0 表示不存在。
-
语法:
SISMEMBER key member
-
示例:
SISMEMBER myset "apple" # 检查 "apple" 是否在集合中
五、有序集合(Sorted Sets)命令
有序集合是一个带分数的字符串集合,成员唯一,且按分数排序。以下是有序集合命令的常用操作:
1. ZADD key score member
-
功能:将成员及其分数添加到有序集合中。
-
语法:
ZADD key score member
-
示例:
ZADD myzset 1 "apple" 2 "banana" # 添加成员及其分数
2. ZRANGE key start stop
-
功能:按分数从小到大获取有序集合中指定范围的成员。
-
语法:
ZRANGE key start stop
-
示例:
ZRANGE myzset 0 -1 # 获取有序集合中的所有成员
3. ZSCORE key member
-
功能:获取成员的分数。
-
语法:
ZSCORE key member
-
示例:
ZSCORE myzset "apple" # 返回 "apple" 的分数
4. ZREM key member
-
功能:从有序集合中移除成员。
-
语法:
ZREM key member
-
示例:
ZREM myzset "apple" # 从有序集合中移除 "apple"
六、事务(Transactions)命令
Redis 事务可以将多个命令打包,然后一次性顺序执行。以下是事务命令的常用操作:
1. MULTI
-
功能:开始一个事务。
-
语法:
MULTI
2. EXEC
-
功能:执行事务中的所有命令。
-
语法:
EXEC
3. DISCARD
-
功能:取消事务,放弃执行事务中的命令。
-
语法:
DISCARD
示例:
MULTI
SET key1 "value1"
SET key2 "value2"
EXEC
七、键(Keys)命令
键命令用于管理 Redis 中的键。以下是键命令的常用操作:
1. DEL key
-
功能:删除键。
-
语法:
DEL key
-
示例:
DEL name # 删除键 name
2. EXISTS key
-
功能:检查键是否存在,返回 1 表示存在,0 表示不存在。
-
语法:
EXISTS key
-
示例:
EXISTS name # 检查键 name 是否存在
3. KEYS pattern
-
功能:查找所有符合给定模式的键。
-
语法:
KEYS pattern
-
示例:
KEYS user* # 查找所有以 "user" 开头的键