外观
Redis 常用命令
键管理命令
键的基本操作
KEYS 命令
- 语法:
KEYS pattern - 功能:查找所有符合给定模式的键
- 参数:
pattern:匹配模式,支持通配符*(匹配任意多个字符)、?(匹配单个字符)、[](匹配指定范围内的字符)
- 返回值:符合条件的键列表
- 示例:bash
# 查找所有以 "user:" 开头的键 redis-cli KEYS user:* # 查找所有包含 "test" 的键 redis-cli KEYS *test*
EXISTS 命令
- 语法:
EXISTS key [key ...] - 功能:检查给定的键是否存在
- 参数:
key:要检查的键名,可以指定多个
- 返回值:存在的键的数量
- 示例:bash
# 检查单个键是否存在 redis-cli EXISTS user:1 # 检查多个键是否存在 redis-cli EXISTS user:1 user:2 user:3
DEL 命令
- 语法:
DEL key [key ...] - 功能:删除给定的一个或多个键
- 参数:
key:要删除的键名,可以指定多个
- 返回值:成功删除的键的数量
- 示例:bash
# 删除单个键 redis-cli DEL user:1 # 删除多个键 redis-cli DEL user:1 user:2
TYPE 命令
- 语法:
TYPE key - 功能:返回键所存储的值的类型
- 参数:
key:要检查的键名
- 返回值:键的类型,可能的取值有:
string、hash、list、set、zset、stream、none(键不存在) - 示例:bash
# 检查键的类型 redis-cli TYPE user:1
RENAME 命令
- 语法:
RENAME key newkey - 功能:将键重命名为 newkey
- 参数:
key:原键名newkey:新键名
- 返回值:成功返回
OK,失败返回错误信息 - 示例:bash
# 重命名键 redis-cli RENAME user:1 user:100
EXPIRE 命令
- 语法:
EXPIRE key seconds - 功能:为键设置过期时间,单位为秒
- 参数:
key:要设置过期时间的键名seconds:过期时间,单位为秒
- 返回值:设置成功返回
1,键不存在返回0 - 示例:bash
# 设置键的过期时间为60秒 redis-cli EXPIRE user:1 60
TTL 命令
- 语法:
TTL key - 功能:返回键的剩余生存时间(TTL,Time To Live)
- 参数:
key:要检查的键名
- 返回值:
- 大于等于0的整数:键的剩余生存时间,单位为秒
-1:键存在但没有设置过期时间-2:键不存在
- 示例:bash
# 检查键的剩余生存时间 redis-cli TTL user:1
键的高级操作
SCAN 命令
- 语法:
SCAN cursor [MATCH pattern] [COUNT count] - 功能:迭代数据库中的键空间
- 参数:
cursor:游标,第一次调用使用0,后续调用使用上一次返回的游标值MATCH pattern:可选,匹配模式COUNT count:可选,每次迭代返回的键的数量,默认值为10
- 返回值:包含新游标和匹配键列表的数组
- 示例:bash
# 迭代所有键 redis-cli SCAN 0 # 迭代匹配 "user:*" 模式的键,每次返回20个 redis-cli SCAN 0 MATCH user:* COUNT 20
OBJECT 命令
- 语法:
OBJECT subcommand [arguments [arguments ...]] - 功能:获取键的内部对象信息
- 常用子命令:
OBJECT ENCODING key:返回键值的内部编码OBJECT IDLETIME key:返回键的空闲时间(自上次访问以来经过的秒数)OBJECT REFCOUNT key:返回键的引用计数
- 示例:bash
# 获取键值的内部编码 redis-cli OBJECT ENCODING user:1 # 获取键的空闲时间 redis-cli OBJECT IDLETIME user:1
字符串命令
字符串基本操作
SET 命令
- 语法:
SET key value [EX seconds | PX milliseconds | KEEPTTL] [NX | XX] [GET] - 功能:设置键的值
- 参数:
key:键名value:键值EX seconds:可选,设置过期时间,单位为秒PX milliseconds:可选,设置过期时间,单位为毫秒KEEPTTL:可选,保留键原有的过期时间NX:可选,只在键不存在时设置XX:可选,只在键存在时设置GET:可选,返回键的旧值
- 返回值:
- 成功返回
OK - 使用
GET选项时返回键的旧值 - 使用
NX或XX选项但条件不满足时返回nil
- 成功返回
- 示例:bash
# 设置键的值 redis-cli SET user:1 "John Doe" # 设置键的值并设置过期时间为60秒 redis-cli SET user:1 "John Doe" EX 60 # 只在键不存在时设置 redis-cli SET user:1 "John Doe" NX # 返回键的旧值并设置新值 redis-cli SET user:1 "Jane Doe" GET
GET 命令
- 语法:
GET key - 功能:获取键的值
- 参数:
key:键名
- 返回值:键的值,如果键不存在返回
nil - 示例:bash
# 获取键的值 redis-cli GET user:1
GETSET 命令
- 语法:
GETSET key value - 功能:将键的值设为新值,并返回键的旧值
- 参数:
key:键名value:新值
- 返回值:键的旧值,如果键不存在返回
nil - 示例:bash
# 设置新值并返回旧值 redis-cli GETSET user:1 "Jane Doe"
MSET 和 MGET 命令
- 语法:
MSET key value [key value ...]MGET key [key ...]
- 功能:
MSET:同时设置多个键值对MGET:同时获取多个键的值
- 参数:
key value:键值对,可以指定多个
- 返回值:
MSET:成功返回OKMGET:包含所有键值的列表
- 示例:bash
# 同时设置多个键值对 redis-cli MSET user:1 "John" user:2 "Jane" user:3 "Bob" # 同时获取多个键的值 redis-cli MGET user:1 user:2 user:3
字符串数值操作
INCR 和 DECR 命令
- 语法:
INCR keyDECR key
- 功能:
INCR:将键的值加1DECR:将键的值减1
- 参数:
key:键名
- 返回值:执行操作后的键值
- 示例:bash
# 将键的值加1 redis-cli INCR counter # 将键的值减1 redis-cli DECR counter
INCRBY 和 DECRBY 命令
- 语法:
INCRBY key incrementDECRBY key decrement
- 功能:
INCRBY:将键的值加上指定的增量DECRBY:将键的值减去指定的减量
- 参数:
key:键名increment/decrement:要增加或减少的数值
- 返回值:执行操作后的键值
- 示例:bash
# 将键的值加10 redis-cli INCRBY counter 10 # 将键的值减5 redis-cli DECRBY counter 5
INCRBYFLOAT 命令
- 语法:
INCRBYFLOAT key increment - 功能:将键的值加上指定的浮点数增量
- 参数:
key:键名increment:要增加的浮点数
- 返回值:执行操作后的键值
- 示例:bash
# 将键的值加2.5 redis-cli INCRBYFLOAT price 2.5
字符串其他操作
APPEND 命令
- 语法:
APPEND key value - 功能:将指定的值追加到键值的末尾
- 参数:
key:键名value:要追加的字符串
- 返回值:追加后字符串的总长度
- 示例:bash
# 追加字符串到键值末尾 redis-cli APPEND user:1 " - Developer"
STRLEN 命令
- 语法:
STRLEN key - 功能:返回键值的长度
- 参数:
key:键名
- 返回值:键值的长度,如果键不存在返回
0 - 示例:bash
# 获取键值的长度 redis-cli STRLEN user:1
SUBSTR 命令
- 语法:
SUBSTR key start end - 功能:返回键值的子字符串
- 参数:
key:键名start:起始索引,包含该位置end:结束索引,包含该位置
- 返回值:子字符串
- 示例:bash
# 获取键值的前5个字符 redis-cli SUBSTR user:1 0 4 # 获取键值的最后3个字符 redis-cli SUBSTR user:1 -3 -1
哈希命令
哈希基本操作
HSET 命令
- 语法:
HSET key field value [field value ...] - 功能:设置哈希表中一个或多个字段的值
- 参数:
key:哈希表的键名field:字段名value:字段值
- 返回值:成功设置的字段数量
- 示例:bash
# 设置哈希表中的一个字段 redis-cli HSET user:1 name "John Doe" # 设置哈希表中的多个字段 redis-cli HSET user:1 name "John Doe" age 30 email "john@example.com"
HGET 命令
- 语法:
HGET key field - 功能:获取哈希表中指定字段的值
- 参数:
key:哈希表的键名field:字段名
- 返回值:字段的值,如果字段或哈希表不存在返回
nil - 示例:bash
# 获取哈希表中指定字段的值 redis-cli HGET user:1 name
HMSET 和 HMGET 命令
- 语法:
HMSET key field value [field value ...]HMGET key field [field ...]
- 功能:
HMSET:同时设置哈希表中多个字段的值(Redis 4.0.0+ 已废弃,建议使用HSET)HMGET:同时获取哈希表中多个字段的值
- 参数:
key:哈希表的键名field:字段名value:字段值
- 返回值:
HMSET:成功返回OKHMGET:包含所有字段值的列表
- 示例:bash
# 同时获取哈希表中多个字段的值 redis-cli HMGET user:1 name age email
HGETALL 命令
- 语法:
HGETALL key - 功能:获取哈希表中所有字段和值
- 参数:
key:哈希表的键名
- 返回值:包含所有字段和值的列表,字段和值交替出现
- 示例:bash
# 获取哈希表中所有字段和值 redis-cli HGETALL user:1
哈希字段操作
HEXISTS 命令
- 语法:
HEXISTS key field - 功能:检查哈希表中指定字段是否存在
- 参数:
key:哈希表的键名field:字段名
- 返回值:存在返回
1,不存在返回0 - 示例:bash
# 检查哈希表中指定字段是否存在 redis-cli HEXISTS user:1 name
HDEL 命令
- 语法:
HDEL key field [field ...] - 功能:删除哈希表中指定的一个或多个字段
- 参数:
key:哈希表的键名field:要删除的字段名,可以指定多个
- 返回值:成功删除的字段数量
- 示例:bash
# 删除哈希表中的一个字段 redis-cli HDEL user:1 age # 删除哈希表中的多个字段 redis-cli HDEL user:1 age email
HLEN 命令
- 语法:
HLEN key - 功能:返回哈希表中字段的数量
- 参数:
key:哈希表的键名
- 返回值:字段数量,如果哈希表不存在返回
0 - 示例:bash
# 获取哈希表中字段的数量 redis-cli HLEN user:1
HKEYS 和 HVALS 命令
- 语法:
HKEYS keyHVALS key
- 功能:
HKEYS:返回哈希表中所有字段名HVALS:返回哈希表中所有字段值
- 参数:
key:哈希表的键名
- 返回值:
HKEYS:字段名列表HVALS:字段值列表
- 示例:bash
# 获取哈希表中所有字段名 redis-cli HKEYS user:1 # 获取哈希表中所有字段值 redis-cli HVALS user:1
哈希数值操作
HINCRBY 命令
- 语法:
HINCRBY key field increment - 功能:将哈希表中指定字段的值加上指定的增量
- 参数:
key:哈希表的键名field:字段名increment:要增加的数值
- 返回值:执行操作后的字段值
- 示例:bash
# 将哈希表中指定字段的值加1 redis-cli HINCRBY user:1 age 1 # 将哈希表中指定字段的值加5 redis-cli HINCRBY product:1 stock 5
HINCRBYFLOAT 命令
- 语法:
HINCRBYFLOAT key field increment - 功能:将哈希表中指定字段的值加上指定的浮点数增量
- 参数:
key:哈希表的键名field:字段名increment:要增加的浮点数
- 返回值:执行操作后的字段值
- 示例:bash
# 将哈希表中指定字段的值加2.5 redis-cli HINCRBYFLOAT product:1 price 2.5
列表命令
列表基本操作
LPUSH 和 RPUSH 命令
- 语法:
LPUSH key value [value ...]RPUSH key value [value ...]
- 功能:
LPUSH:将一个或多个值插入到列表的头部RPUSH:将一个或多个值插入到列表的尾部
- 参数:
key:列表的键名value:要插入的值,可以指定多个
- 返回值:执行操作后列表的长度
- 示例:bash
# 在列表头部插入一个值 redis-cli LPUSH users "John" # 在列表尾部插入多个值 redis-cli RPUSH users "Jane" "Bob" "Alice"
LPOP 和 RPOP 命令
- 语法:
LPOP key [count]RPOP key [count]
- 功能:
LPOP:移除并返回列表的头元素RPOP:移除并返回列表的尾元素
- 参数:
key:列表的键名count:可选,要弹出的元素数量,默认值为1
- 返回值:
- 当
count未指定时,返回被弹出的元素 - 当
count指定时,返回被弹出的元素列表
- 当
- 示例:bash
# 移除并返回列表的头元素 redis-cli LPOP users # 移除并返回列表的尾元素 redis-cli RPOP users # 移除并返回列表的前2个元素 redis-cli LPOP users 2
LLEN 命令
- 语法:
LLEN key - 功能:返回列表的长度
- 参数:
key:列表的键名
- 返回值:列表的长度,如果列表不存在返回
0 - 示例:bash
# 获取列表的长度 redis-cli LLEN users
LRANGE 命令
- 语法:
LRANGE key start stop - 功能:返回列表中指定区间内的元素
- 参数:
key:列表的键名start:起始索引,包含该位置stop:结束索引,包含该位置,使用-1表示最后一个元素
- 返回值:指定区间内的元素列表
- 示例:bash
# 获取列表的前3个元素 redis-cli LRANGE users 0 2 # 获取列表的所有元素 redis-cli LRANGE users 0 -1 # 获取列表的最后2个元素 redis-cli LRANGE users -2 -1
列表元素操作
LINDEX 命令
- 语法:
LINDEX key index - 功能:返回列表中指定索引位置的元素
- 参数:
key:列表的键名index:索引位置,从0开始,负数表示从尾部开始计数
- 返回值:指定位置的元素,如果索引超出范围返回
nil - 示例:bash
# 获取列表中索引为0的元素 redis-cli LINDEX users 0 # 获取列表中倒数第1个元素 redis-cli LINDEX users -1
LSET 命令
- 语法:
LSET key index value - 功能:设置列表中指定索引位置的元素值
- 参数:
key:列表的键名index:索引位置value:新值
- 返回值:成功返回
OK,失败返回错误信息 - 示例:bash
# 设置列表中索引为0的元素值 redis-cli LSET users 0 "Johnny"
LREM 命令
- 语法:
LREM key count value - 功能:移除列表中与指定值相等的元素
- 参数:
key:列表的键名count:- 正数:从列表头部开始向尾部搜索,移除前
count个匹配的元素 - 负数:从列表尾部开始向头部搜索,移除前
abs(count)个匹配的元素 - 0:移除所有匹配的元素
- 正数:从列表头部开始向尾部搜索,移除前
value:要移除的元素值
- 返回值:成功移除的元素数量
- 示例:bash
# 移除列表中所有值为 "John" 的元素 redis-cli LREM users 0 "John" # 从列表头部开始移除前2个值为 "Jane" 的元素 redis-cli LREM users 2 "Jane"
LTRIM 命令
- 语法:
LTRIM key start stop - 功能:对列表进行修剪,只保留指定区间内的元素
- 参数:
key:列表的键名start:起始索引stop:结束索引
- 返回值:成功返回
OK - 示例:bash
# 只保留列表的前3个元素 redis-cli LTRIM users 0 2 # 只保留列表的最后2个元素 redis-cli LTRIM users -2 -1
集合命令
集合基本操作
SADD 命令
- 语法:
SADD key member [member ...] - 功能:向集合中添加一个或多个成员
- 参数:
key:集合的键名member:要添加的成员
- 返回值:成功添加的成员数量
- 示例:bash
# 向集合中添加一个成员 redis-cli SADD users "John" # 向集合中添加多个成员 redis-cli SADD users "Jane" "Bob" "Alice"
SMEMBERS 命令
- 语法:
SMEMBERS key - 功能:返回集合中的所有成员
- 参数:
key:集合的键名
- 返回值:集合中的所有成员列表
- 示例:bash
# 获取集合中的所有成员 redis-cli SMEMBERS users
SISMEMBER 命令
- 语法:
SISMEMBER key member - 功能:检查成员是否存在于集合中
- 参数:
key:集合的键名member:要检查的成员
- 返回值:存在返回
1,不存在返回0 - 示例:bash
# 检查成员 "John" 是否存在于集合中 redis-cli SISMEMBER users "John"
SCARD 命令
- 语法:
SCARD key - 功能:返回集合的成员数量
- 参数:
key:集合的键名
- 返回值:集合的成员数量,如果集合不存在返回
0 - 示例:bash
# 获取集合的成员数量 redis-cli SCARD users
集合成员操作
SREM 命令
- 语法:
SREM key member [member ...] - 功能:从集合中移除一个或多个成员
- 参数:
key:集合的键名member:要移除的成员
- 返回值:成功移除的成员数量
- 示例:bash
# 从集合中移除一个成员 redis-cli SREM users "John" # 从集合中移除多个成员 redis-cli SREM users "Jane" "Bob"
SPOP 命令
- 语法:
SPOP key [count] - 功能:移除并返回集合中的一个或多个随机成员
- 参数:
key:集合的键名count:可选,要弹出的成员数量,默认值为1
- 返回值:
- 当
count未指定时,返回被弹出的成员 - 当
count指定时,返回被弹出的成员列表
- 当
- 示例:bash
# 移除并返回集合中的一个随机成员 redis-cli SPOP users # 移除并返回集合中的3个随机成员 redis-cli SPOP users 3
SRANDMEMBER 命令
- 语法:
SRANDMEMBER key [count] - 功能:返回集合中的一个或多个随机成员,但不移除
- 参数:
key:集合的键名count:可选,要返回的成员数量
- 返回值:
- 当
count未指定时,返回一个随机成员 - 当
count为正数时,返回包含count个随机成员的列表,成员可能重复 - 当
count为负数时,返回包含abs(count)个随机成员的列表,成员不重复
- 当
- 示例:bash
# 返回集合中的一个随机成员 redis-cli SRANDMEMBER users # 返回集合中的3个随机成员,可能重复 redis-cli SRANDMEMBER users 3 # 返回集合中的2个不重复的随机成员 redis-cli SRANDMEMBER users -2
集合运算命令
SINTER 命令
- 语法:
SINTER key [key ...] - 功能:返回所有给定集合的交集
- 参数:
key:集合的键名,可以指定多个
- 返回值:交集成员列表
- 示例:bash
# 返回两个集合的交集 redis-cli SINTER users:online users:vip
SUNION 命令
- 语法:
SUNION key [key ...] - 功能:返回所有给定集合的并集
- 参数:
key:集合的键名,可以指定多个
- 返回值:并集成员列表
- 示例:bash
# 返回两个集合的并集 redis-cli SUNION users:online users:offline
SDIFF 命令
- 语法:
SDIFF key [key ...] - 功能:返回第一个集合与其他集合的差集
- 参数:
key:集合的键名,可以指定多个
- 返回值:差集成员列表
- 示例:bash
# 返回集合A与集合B的差集 redis-cli SDIFF users:all users:vip
有序集合命令
有序集合基本操作
ZADD 命令
- 语法:
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] - 功能:向有序集合中添加一个或多个成员,或者更新已存在成员的分数
- 参数:
key:有序集合的键名NX:可选,只在成员不存在时添加XX:可选,只在成员存在时更新分数CH:可选,返回修改的成员数量(添加、更新分数)INCR:可选,将成员的分数加上指定的增量score:成员的分数,可以是整数或浮点数member:成员名
- 返回值:
- 当
CH未指定时,返回成功添加的成员数量 - 当
CH指定时,返回修改的成员数量
- 当
- 示例:bash
# 向有序集合中添加一个成员 redis-cli ZADD leaderboard 100 "John" # 向有序集合中添加多个成员 redis-cli ZADD leaderboard 90 "Jane" 80 "Bob" 70 "Alice" # 增加成员的分数 redis-cli ZADD leaderboard INCR 10 "John"
ZRANGE 命令
- 语法:
ZRANGE key start stop [WITHSCORES] - 功能:返回有序集合中指定区间内的成员,按分数从小到大排序
- 参数:
key:有序集合的键名start:起始索引,包含该位置stop:结束索引,包含该位置,使用-1表示最后一个元素WITHSCORES:可选,同时返回成员的分数
- 返回值:
- 当
WITHSCORES未指定时,返回成员列表 - 当
WITHSCORES指定时,返回成员和分数交替出现的列表
- 当
- 示例:bash
# 返回有序集合中排名前3的成员 redis-cli ZRANGE leaderboard 0 2 # 返回有序集合中所有成员及其分数 redis-cli ZRANGE leaderboard 0 -1 WITHSCORES
ZREVRANGE 命令
- 语法:
ZREVRANGE key start stop [WITHSCORES] - 功能:返回有序集合中指定区间内的成员,按分数从大到小排序
- 参数:与
ZRANGE命令相同 - 返回值:与
ZRANGE命令相同 - 示例:bash
# 返回有序集合中分数最高的3个成员 redis-cli ZREVRANGE leaderboard 0 2
ZCARD 命令
- 语法:
ZCARD key - 功能:返回有序集合的成员数量
- 参数:
key:有序集合的键名
- 返回值:成员数量,如果有序集合不存在返回
0 - 示例:bash
# 获取有序集合的成员数量 redis-cli ZCARD leaderboard
有序集合分数操作
ZSCORE 命令
- 语法:
ZSCORE key member - 功能:返回有序集合中指定成员的分数
- 参数:
key:有序集合的键名member:成员名
- 返回值:成员的分数,如果成员不存在返回
nil - 示例:bash
# 获取有序集合中指定成员的分数 redis-cli ZSCORE leaderboard "John"
ZINCRBY 命令
- 语法:
ZINCRBY key increment member - 功能:将有序集合中指定成员的分数加上指定的增量
- 参数:
key:有序集合的键名increment:要增加的数值,可以是正数或负数member:成员名
- 返回值:执行操作后的成员分数
- 示例:bash
# 将有序集合中指定成员的分数加10 redis-cli ZINCRBY leaderboard 10 "John" # 将有序集合中指定成员的分数减5 redis-cli ZINCRBY leaderboard -5 "Jane"
ZCOUNT 命令
- 语法:
ZCOUNT key min max - 功能:返回有序集合中分数在指定范围内的成员数量
- 参数:
key:有序集合的键名min:分数下限max:分数上限
- 返回值:指定分数范围内的成员数量
- 示例:bash
# 返回分数在80到100之间的成员数量 redis-cli ZCOUNT leaderboard 80 100 # 返回分数大于80的成员数量 redis-cli ZCOUNT leaderboard (80 +inf
有序集合排名操作
ZRANK 命令
- 语法:
ZRANK key member - 功能:返回有序集合中指定成员的排名,按分数从小到大排序,排名从0开始
- 参数:
key:有序集合的键名member:成员名
- 返回值:成员的排名,如果成员不存在返回
nil - 示例:bash
# 获取有序集合中指定成员的排名(从小到大) redis-cli ZRANK leaderboard "John"
ZREVRANK 命令
- 语法:
ZREVRANK key member - 功能:返回有序集合中指定成员的排名,按分数从大到小排序,排名从0开始
- 参数:与
ZRANK命令相同 - 返回值:与
ZRANK命令相同 - 示例:bash
# 获取有序集合中指定成员的排名(从大到小) redis-cli ZREVRANK leaderboard "John"
ZRANGEBYSCORE 命令
- 语法:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] - 功能:返回有序集合中分数在指定范围内的成员,按分数从小到大排序
- 参数:
key:有序集合的键名min:分数下限max:分数上限WITHSCORES:可选,同时返回成员的分数LIMIT offset count:可选,分页参数
- 返回值:与
ZRANGE命令相同 - 示例:bash
# 返回分数在80到100之间的成员 redis-cli ZRANGEBYSCORE leaderboard 80 100 # 返回分数大于80的前3个成员及其分数 redis-cli ZRANGEBYSCORE leaderboard (80 +inf WITHSCORES LIMIT 0 3
ZREMRANGEBYRANK 命令
- 语法:
ZREMRANGEBYRANK key start stop - 功能:移除有序集合中指定排名范围内的成员
- 参数:
key:有序集合的键名start:起始排名stop:结束排名
- 返回值:成功移除的成员数量
- 示例:bash
# 移除有序集合中排名前2的成员 redis-cli ZREMRANGEBYRANK leaderboard 0 1 # 移除有序集合中排名最后的3个成员 redis-cli ZREMRANGEBYRANK leaderboard -3 -1
ZREMRANGEBYSCORE 命令
- 语法:
ZREMRANGEBYSCORE key min max - 功能:移除有序集合中分数在指定范围内的成员
- 参数:
key:有序集合的键名min:分数下限max:分数上限
- 返回值:成功移除的成员数量
- 示例:bash
# 移除有序集合中分数小于80的成员 redis-cli ZREMRANGEBYSCORE leaderboard -inf (80
常见问题(FAQ)
Q1: Redis 命令中的通配符有哪些?
A1: Redis 命令支持以下通配符:
*:匹配任意多个字符(包括0个)?:匹配单个字符[]:匹配指定范围内的字符,例如[abc]匹配a、b或c[^]:匹配指定范围外的字符,例如[^abc]匹配除a、b、c之外的任意字符
Q2: 如何获取 Redis 中所有键的数量?
A2: 可以使用 DBSIZE 命令获取当前数据库中键的数量:
bash
redis-cli DBSIZEQ3: 如何清空 Redis 数据库?
A3: 可以使用 FLUSHDB 命令清空当前数据库:
bash
redis-cli FLUSHDB或使用 FLUSHALL 命令清空所有数据库:
bash
redis-cli FLUSHALLQ4: 如何查看 Redis 服务器信息?
A4: 可以使用 INFO 命令查看 Redis 服务器的详细信息:
bash
# 查看所有信息
redis-cli INFO
# 查看特定部分的信息,例如内存信息
redis-cli INFO memory
# 查看CPU信息
redis-cli INFO cpuQ5: 如何设置 Redis 键的过期时间?
A5: 可以使用以下命令设置 Redis 键的过期时间:
EXPIRE key seconds:设置键的过期时间为指定的秒数PEXPIRE key milliseconds:设置键的过期时间为指定的毫秒数EXPIREAT key timestamp:设置键的过期时间为指定的UNIX时间戳(秒)PEXPIREAT key milliseconds-timestamp:设置键的过期时间为指定的UNIX时间戳(毫秒)
Q6: 如何取消 Redis 键的过期时间?
A6: 可以使用 PERSIST 命令取消键的过期时间,使键永久存在:
bash
redis-cli PERSIST keyQ7: 如何查看 Redis 中所有数据类型的命令?
A7: 可以使用 HELP 命令查看 Redis 命令的分类和详细信息:
bash
# 查看所有命令分类
redis-cli HELP
# 查看特定数据类型的命令,例如字符串命令
redis-cli HELP @string
# 查看哈希命令
redis-cli HELP @hashQ8: 如何在 Redis 中执行事务?
A8: 可以使用 MULTI、EXEC 和 DISCARD 命令执行事务:
bash
# 开始事务
redis-cli MULTI
# 执行多个命令
redis-cli SET key1 value1
redis-cli SET key2 value2
redis-cli GET key1
# 提交事务
redis-cli EXECQ9: 如何在 Redis 中执行 Lua 脚本?
A9: 可以使用 EVAL 命令执行 Lua 脚本:
bash
# 执行简单的 Lua 脚本
redis-cli EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 test-key test-valueQ10: 如何监控 Redis 命令执行?
A10: 可以使用 MONITOR 命令监控 Redis 服务器执行的所有命令:
bash
redis-cli MONITOR