文章目录
Redis 提供了大量的命令来操作其五种基本数据结构(字符串、哈希表、列表、集合和有序集合)以及进行数据库管理。以下是一些 Redis 常用命令的大致分类,由于篇幅限制,这里不可能列出所有命令的详细信息,请参阅官方文档以获取最新和最全的命令列表。
启动与连接
- 启动服务:
redis-server [配置文件路径] # 指定配置文件启动 redis-server & # 以后台模式启动
- 客户端连接:
redis-cli # 连接本地Redis服务器 redis-cli -h 主机名 -p 端口号 # 远程连接Redis服务器 redis-cli -a 密码 # 使用密码连接
Key(键)相关命令
- 操作Key:
DEL key
:删除指定key。EXISTS key
:检查key是否存在。KEYS pattern
:查找所有符合给定模式的key。RANDOMKEY
:随机返回一个key。RENAME oldkey newkey
:重命名key。RENAMENX oldkey newkey
:仅当newkey不存在时重命名key。TTL key
:获取key的剩余生存时间。PTTL key
:获取key的精确剩余生存时间(毫秒)。TYPE key
:返回key所存储的值的类型。
String(字符串)
- 设置与获取:
SET key value
:设置key的值。GET key
:获取key的值。APPEND key value
:追加值到key对应的字符串末尾。GETRANGE key start end
:获取key中指定范围的子字符串。
Hash(哈希)
- 增删改查:
HSET key field value
:为哈希表key中的field赋值。HGET key field
:获取哈希表中指定字段的值。HMSET key field value [field value ...]
:同时设置多个哈希字段的值。HGETALL key
:获取哈希表中所有字段和值。
List(列表)
- 元素操作:
LPUSH key value [value ...]
:将一个或多个值插入到列表头部。RPUSH key value [value ...]
:将一个或多个值插入到列表尾部。LPOP key
:移除并返回列表的第一个元素。RPOP key
:移除并返回列表的最后一个元素。LRANGE key start stop
:获取列表指定范围内的元素。
Set(集合)
- 成员操作:
SADD key member [member ...]
:向集合添加一个或多个成员。SISMEMBER key member
:判断成员是否是集合的成员。SMEMBERS key
:获取集合的所有成员。SCARD key
:获取集合内元素的数量。
Sorted Set(有序集合)
- 元素排序操作:
ZADD key score member [score member ...]
:添加一个带有分数的成员到有序集合。ZRANK key member
:返回有序集合中指定成员的索引(排名)。ZSCORE key member
:返回有序集合中成员的分数值。ZRANGE key start stop [WITHSCORES]
:按索引范围返回有序集合的成员及其分数。
其他常见命令
-
事务:
MULTI
,EXEC
,DISCARD
,WATCH
-
发布/订阅:
PUBLISH channel message
,SUBSCRIBE channel [channel ...]
,UNSUBSCRIBE [channel ...]
-
持久化:
SAVE
,BGSAVE
,LASTSAVE
,CONFIG SET save "..."
(配置持久化策略) -
数据库管理:
SELECT index
:切换数据库。FLUSHDB
:清空当前数据库。FLUSHALL
:清空所有数据库。
-
脚本执行:
EVAL script numkeys key [key ...] arg [arg ...]
-
监控与统计:
INFO
,MONITOR
HyperLogLog(基数统计)
- 基数估算:
PFADD key element [element ...]
:添加指定元素到HyperLogLog结构中。PFCOUNT key [key ...]
:返回给定HyperLogLog的近似基数,即唯一元素数量。
Bitmaps(位图)
- 位操作:
SETBIT key offset value
:对key所储存的字符串值设置或清除指定偏移量上的位。GETBIT key offset
:获取key所储存的字符串值指定偏移量上的位。BITCOUNT key [start end]
:计算给定范围内,key对应的字符串中被设置为1的比特位的数量。
Streams(流数据)
- 流操作:
XADD key * field value [field value ...]
:将一条新消息追加到流中。XRANGE key start end [COUNT count]
:从流中返回指定范围内的消息。XPENDING key group [start end count consumer]
:查询消费者组未确认的消息。
连接管理
- 客户端连接信息:
CLIENT LIST
:获取客户端连接列表。CLIENT KILL ip:port
:关闭与指定IP和端口相匹配的客户端连接。CLIENT GETNAME
:获取当前连接的名称。CLIENT SETNAME connection-name
:设置当前连接的名称。
许可证控制
- ACL命令:
ACL SETUSER username
:创建或修改用户及其权限。ACL GETUSER username
:获取用户的信息和权限列表。ACL LIST
:列出所有用户及它们的权限。ACL WHOAMI
:显示当前连接的身份。
Lua脚本执行
Redis支持使用Lua语言编写脚本并在服务器端执行以实现更复杂的逻辑,例如:
EVAL script numkeys key [key ...] arg [arg ...]
:执行Lua脚本,并通过key和arg参数传入键名和参数。
其他实用命令
-
过期时间设置:
PEXPIRE key milliseconds
:为key设置过期时间(毫秒)。EXPIRE key seconds
:为key设置过期时间(秒)。PERSIST key
:移除key的过期时间,使其持久化。
-
事务相关:
EXEC
:执行事务块内的命令序列。DISCARD
:取消事务,放弃执行事务块内的所有命令。UNWATCH
:取消之前对所有key的监视。
由于篇幅限制,以上仍非Redis命令大全的完整列表,更多高级特性、详细参数以及命令用法,请参考官方文档。
最后我们放松一下眼睛