Redis 是一个高性能的内存数据库,常用于缓存、消息队列、实时统计等场景,掌握 Redis 服务器命令是高效使用 Redis 的基础,以下从连接管理、键值操作、数据类型操作、服务器管理等方面详细介绍常用命令。

连接管理是使用 Redis 的第一步,通过 redis-cli 命令可以连接到 Redis 服务器,redis-cli -h host -p port -a password 可指定主机、端口和密码,连接后,ping 命令用于测试服务器是否响应,返回 PONG 表示连接正常;auth password 用于密码认证;quit 或 exit 可断开连接,若需远程管理,可通过 redis-cli -h 远程IP 连接,但需确保服务器配置允许远程访问并设置了密码。
键值操作是 Redis 最核心的功能。keys pattern 命令可匹配键,keys user:* 匹配所有以 user: 开头的键,但生产环境建议用 scan 替代,避免阻塞服务器。exists key 检查键是否存在,返回 1 表示存在,0 表示不存在;del key [key2 ...] 可删除一个或多个键;type key 返回键的数据类型(如 string、hash、list 等);ttl key 查看键的过期时间(秒),pttl key 查看毫秒级过期时间,返回 -1 表示永不过期,-2 表示键不存在,设置过期时间常用 expire key seconds 或 pexpire key milliseconds,也可在设置键时直接指定,如 set key value ex 10。
Redis 支持多种数据类型,每种类型有专属操作,String 类型是最简单的键值存储,set key value [ex seconds|px milliseconds] [nx|xx] 设置键值,nx 表示键不存在时才设置,xx 表示键存在时才设置;get key 获取值;mget key1 key2 ... 批量获取值;incr key 将值加 1(值需为整数),decr key 减 1,incrby key increment 指定步长递增,Hash 类型存储 field-value 对,适合存储对象,hset key field value 设置字段值,hget key field 获取字段值,hgetall key 获取所有字段和值,hdel key field [field2 ...] 删除字段,hexists key field 检查字段是否存在,List 类型是双向链表,lpush key value [value2 ...] 在左侧插入元素,rpush key value [value2 ...] 在右侧插入,lpop key 左侧弹出元素,rpop key 右侧弹出,lrange key start stop 获取指定范围的元素(如 lrange mylist 0 -1 获取全部),Set 类型是唯一元素集合,sadd key member [member2 ...] 添加元素,smembers key 获取所有元素,srem key member [member2 ...] 删除元素,sismember key member 检查元素是否存在,ZSet 是有序集合,每个元素关联分数,zadd key score member [score member ...] 添加元素,zrange key start stop [withscores] 获取有序元素(默认升序),zrangebyscore key min max [withscores] 按分数范围获取,zrem key member [member2 ...] 删除元素。
服务器管理命令用于监控和维护 Redis。info [section] 查看服务器信息,如 info memory 查看内存使用情况,info stats 查看统计信息;dbnum 切换数据库(默认 16 个数据库,编号 0-15);flushdb 删除当前数据库所有键,flushall 删除所有数据库所有键;save 同步保存数据到磁盘,bgsave 异步保存;lastsave 查看最后一次成功保存的时间;monitor 实时监控收到的命令(生产环境慎用);config get parameter 获取配置参数,如 config get maxmemory,config set parameter value 动态修改配置。

相关问答FAQs:
-
问:Redis 的
keys命令为什么生产环境不建议使用?
答:keys命令会遍历数据库中的所有键,当键数量较多时(如百万级),会导致 Redis 服务器阻塞,影响正常服务,生产环境推荐使用scan命令,它基于游标分批遍历,不会阻塞服务器,scan 0 match user:* count 1000表示从游标 0 开始,匹配user:*键,每次返回最多 1000 个键。 -
问:如何设置 Redis 的内存淘汰策略?
答:Redis 内存达到maxmemory限制时,需通过淘汰策略释放内存,可通过config set maxmemory-policy 策略名动态设置,或修改配置文件,常用策略包括:allkeys-lru(淘汰所有键中最久未使用的)、volatile-lru(仅淘汰设置了过期键的 LRU)、allkeys-random(随机淘汰键)、volatile-ttl(优先淘汰即将过期的键),若未设置策略,内存写满时会报错。
