目录
Redis简介
Redis作为一个高性能的内存数据结构存储系统,已经成为许多开发者和系统架构师的首选。它不仅提供了丰富的数据类型和操作命令,还支持多种持久化方式和复制策略.
一、基础命令
Ping命令
PING
:测试与Redis服务器的连接是否正常。返回值为PONG
。
键值操作
设置键值
SET key value
:设置键值对,当键不存在时创建,存在则覆盖。
SETEX key seconds value
:设置键值对,并将键的过期时间(以秒为单位)设置为指定的秒数。
SETNX key value
:仅当键不存在时,设置键值对。
获取键值
GET key
:获取键对应的值。如果键不存在,则返回nil
。
删除键
DEL key
:删除一个或多个键。返回值为被删除键的数量。
检查键是否存在
EXISTS key
:检查键是否存在。存在返回1,不存在返回0。
键的过期时间
TTL key
:查看键的剩余生存时间(以秒为单位)。如果键不存在,则返回-2。如果键没有设置过期时间,则返回-1。
PERSIST key
:移除键的过期时间,使键永久存在。
二、数据类型相关命令
字符串操作命令
字符串长度
STRLEN key
:返回键对应值的字符串长度。
字符串追加
APPEND key value
:将值追加到键对应的字符串末尾。
字符串右移
RPUSH key value
:将值追加到列表键的末尾。
RPOP key
:移除并返回列表键的末尾元素。
字符串左移
LPUSH key value
:将值追加到列表键的开头。
LPOOP key
:移除并返回列表键的开头元素。
字符串索引
GET range
:获取字符串指定范围内的子字符串(从索引0开始)。
SET range value
:设置字符串指定范围内的子字符串。
列表操作命令
列表长度
LLEN key
:返回列表的长度。
列表获取
LRANGE key start end
:返回列表指定范围内的元素。
列表插入
LINSERT key before|after pivot value
:在列表中指定位置之前或之后插入元素。
列表移除
LREM key count value
:移除列表中与值相等的元素,并返回被移除的元素数量。
集合操作命令
集合长度
SCARD key
:返回集合的元素数量。
集合添加
SADD key member [member ...]
:向集合添加一个或多个成员。
集合移除
SREM key member [member ...]
:从集合移除一个或多个成员。
集合成员检查
SISMEMBER key member
:检查成员是否属于集合。
有序集合操作命令
有序集合长度
ZCARD key
:返回有序集合的元素数量。
有序集合添加
ZADD key score member [score member ...]
:向有序集合添加一个或多个成员及其得分。
有序集合成员获取
ZRANGE key start stop [WITHSCORES]
:返回有序集合指定范围内的成员。
有序集合分数获取
ZSCORE key member
:返回有序集合中指定成员的得分。
有序集合成员排名
ZRANK key member
:返回有序集合中指定成员的排名。
三、其他命令
数据持久化命令
SAVE
- 将所有数据库保存到磁盘上的文件中。BGSAVE
- 异步保存所有数据库到磁盘上的文件中。RDBSAVE
- 将当前数据库保存到指定的文件中。BGRDBSAVE
- 异步将当前数据库保存到指定的文件中。
事务命令
MULTI
- 开启事务。EXEC
- 执行之前的事务命令。DISCARD
- 取消之前的事务。WATCH key [key ...]
- 监视一个或多个键,当其中一个键被修改后,事务会失败。
其他命令
KEYS pattern
- 查找所有匹配pattern的键。FLUSHDB
- 删除当前数据库中的所有键。FLUSHALL
- 删除所有数据库中的所有键。INFO
- 返回关于Redis服务器的信息。CONFIG GET parameter
- 获取配置参数的值。
连接命令
redis-cli
- 启动Redis客户端。-h hostname
- 指定Redis服务器的主机名。-p port
- 指定Redis服务器的端口号。-a password
- 指定连接Redis服务器的密码。
面试常考命令
-
SET - 用于设置键值对,可以带有过期时间(expire)。
SET key value [EX seconds|PX milliseconds] [NX|XX]
-
GET - 用于获取键的值。
GET key
-
EXPIRE - 为键设置过期时间,单位为秒。
EXPIRE key seconds
-
TTL - 查看键剩余的生存时间。
TTL key
-
INCR/DECR - 对键进行自增或自减操作,键必须存在且是整数类型。
INCR key DECR key
-
HSET - 向哈希表中设置字段的值。
HSET hash field value
-
HGET - 获取哈希表中字段的值。
HGET hash field
-
LPUSH/RPUSH - 向列表的头部或尾部添加元素。
LPUSH list value RPUSH list value
-
LRANGE - 获取列表中指定范围的元素。
LRANGE list start stop
-
SADD/SREM - 向集合添加或移除元素。
SADD set value SREM set value
-
ZADD - 向有序集合添加元素并设置分数。
ZADD zset score value
-
ZCOUNT - 返回有序集合中分数在start和stop之间的元素数量。
ZCOUNT zset min max
-
MGET - 同时获取多个键的值。
MGET keys
-
PIPELINE - 开启管道模式,批量执行命令以减少网络延迟。
PIPELINE // 执行命令 EXEC
-
SCAN - 遍历数据库中的键。
SCAN cursor [MATCH pattern] [COUNT count]