Redis(Remote Dictionary Server)是一个开源的高性能键值对(key-value)存储数据库。它支持多种数据结构,如字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted sets)、哈希表(hashes)和地理空间索引(geospatial indexes)等。Redis提供了丰富的命令来操作这些数据结构,实现各种功能。以下是一些常用的Redis命令及其功能:
-
连接与断开连接
connect [ip] [port]
:连接到指定的Redis服务器。disconnect
:断开与当前Redis服务器的连接。ping
:发送PING命令到服务器,如果服务器响应PONG,则表示连接正常。
-
设置和获取数据
set key value
:将键key
的值设置为value
。get key
:获取键key
的值。setnx key value
:如果键key
不存在,则设置其值为value
,并返回1;否则返回0。setex key seconds value
:将键key
的值设置为value
,并设置过期时间(单位:秒)。hset key field value
:在哈希表key
中设置字段field
的值为value
。hget key field
:获取哈希表key
中字段field
的值。
-
列表操作
lpush key value
:将值value
插入到列表key
的头部。rpush key value
:将值value
插入到列表key
的尾部。lpop key
:移除并返回列表key
头部的元素。rpop key
:移除并返回列表key
尾部的元素。lrange key start end
:获取列表key
中从索引start
到end
的元素。
-
集合操作
sadd key value
:将值value
添加到集合key
中。srem key value
:从集合key
中移除值value
。smembers key
:获取集合key
中的所有元素。sismember key value
:判断值value
是否在集合key
中。
-
有序集合操作
zadd key score value
:将值value
添加到有序集合key
中,并指定其分数(score)。zrem key value
:从有序集合key
中移除值value
。zrange key start end [withscores]
:获取有序集合key
中从索引start
到end
的元素及其分数。zscore key value
:获取有序集合key
中值value
的分数。
-
哈希表操作
hsetnx key field value
:如果哈希表key
中不存在字段field
,则设置其值为value
。hgetall key
:获取哈希表key
中的所有字段及其值。hexists key field
:判断哈希表key
中是否存在字段field
。
-
事务与回滚
multi
:开始一个事务。exec
:执行事务中的所有命令。discard
:取消事务,回滚所有已执行的命令。
-
发布与订阅
publish channel message
:向指定频道channel
发布消息message
。subscribe channel [channel ...]
:订阅一个或多个频道。psubscribe pattern [pattern ...]
:根据模式匹配订阅一个或多个频道。unpublish channel message
:取消发布消息到指定频道。punsubscribe [channel ...]
:取消订阅一个或多个频道。unsubscribe channel [channel ...]
:取消订阅一个或多个频道。
-
Lua脚本处理
eval script numkeys key [key ...]
:执行Lua脚本script
,其中numkeys
表示脚本中使用的键的数量,key
表示脚本中使用的键。evalsha sha1 numkeys key [key ...]
:执行已缓存的Lua脚本sha1
,其中numkeys
表示脚本中使用的键的数量,key
表示脚本中使用的键。
-
系统管理
info [section]
:获取Redis服务器的运行状态信息,可以选择查看特定部分的信息,如cpu
、memory
、persistence
等。monitor
:实时监控Redis服务器的所有操作命令。save
:执行SAVE或BGSAVE命令,将数据异步保存到磁盘。bgsave
:执行BGSAVE命令,将数据异步保存到磁盘。shutdown [save]
:关闭Redis服务器,可以选择是否保存数据。lastsave
:返回最后一次执行SAVE或BGSAVE命令的时间戳。flushdb
:清空当前数据库。flushall
:清空所有数据库。dbsize
:返回当前数据库中键的数量。keys pattern
:查找所有符合给定模式的键。scan key [match pattern] [count count]
:迭代当前数据库中的键,返回匹配给定模式的键及其值。object encoding key
:获取键key
的编码类型。object refcount key
:获取键key
的引用计数。object Dumper key
:以字符串形式返回键key
的值及其类型。config get setting
:获取Redis服务器的配置参数值。config set setting value
:设置Redis服务器的配置参数值。config rewrite
:重写Redis服务器的配置文件。save
:同步保存数据到磁盘。bgrewriteaof
:异步重写AOF文件。client list
:列出所有连接到Redis服务器的客户端。client kill ip port
:终止与指定IP地址和端口相关的客户端连接。client pause milliseconds
:暂停指定毫秒数,期间所有客户端的请求将被挂起。client unpause
:取消暂停客户端请求。cluster nodes
:获取集群中所有节点的信息。cluster create node-id master-ip master-port [cluster-enabled yes [cluster-config-file config-file] [cluster-node-timeout milliseconds]]
:创建一个新的Redis集群节点。cluster add-node node-id master-ip master-port [cluster-enabled yes]
:将一个节点添加到现有的Redis集群中。cluster failover master-id [slaveof new-master-id new-master-ip new-master-port]
:对指定的主节点执行故障转移。cluster reset node-id [force yes]
:重置指定节点的状态,可以选择是否强制执行。cluster rebalance
:重新平衡集群中的节点。cluster save-config
:保存当前集群的配置到配置文件。cluster node-timeout milliseconds
:设置集群节点的超时时间(单位:毫秒)。cluster wait-for-slaveof-to-stop node-id [master-id]
:等待指定节点停止作为从节点。cluster skip-full-slots-check
:跳过对槽位的完整性检查。cluster set-config-file config-file
:设置集群的配置文件路径。cluster get-config-file
:获取集群的配置文件路径。cluster flush-slots
:清空所有槽位。cluster fix
:修复集群中的不一致问题。cluster save-slots
:保存当前槽位信息到磁盘。cluster load-slot-from-checkpoint slot-number
:从检查点加载槽位信息。