Linux 环境下的 Redis 常用命令详解
Redis(Remote Dictionary Server)作为一种高性能的键值存储系统,在 Linux 环境中被广泛应用于缓存、消息队列、会话存储等场景,掌握 Redis 的核心命令是高效运维和开发的基础,本文将围绕 Redis 的连接管理、键值操作、数据类型操作及高级功能展开,详细介绍常用命令的使用方法与注意事项。

连接与服务器管理
在 Linux 终端中,可通过 redis-cli 命令连接 Redis 服务器,默认情况下,命令会尝试连接本地 6379 端口,若需连接远程服务器或指定端口,可使用参数 -h(主机名)和 -p(端口号),redis-cli -h 192.168.1.100 -p 6379,连接成功后,通过 ping 命令可测试服务器响应,正常返回 PONG。
服务器管理方面,info 命令用于查看 Redis 服务器的运行状态,如内存使用、连接数、持久化信息等,可结合参数 memory 或 stats 获取特定数据,若需关闭服务器,使用 shutdown 命令,安全模式下会保存数据后退出;强制退出则可通过 shutdown nosave 实现,但可能导致数据丢失。
键值操作基础
键是 Redis 中最基本的数据单元,常用命令包括 keys、exists、del 和 type。keys * 可匹配所有键,但生产环境中慎用,因其会阻塞服务器;推荐使用 scan 命令实现分步遍历。exists key 检查键是否存在,返回 1 或 0;del key1 key2 可删除一个或多个键;type key 则返回键的数据类型,如 string、hash、list 等。
键的过期时间管理通过 expire 和 ttl 实现。expire key seconds 设置键的生存时间(单位:秒),ttl key 查看剩余时间,返回 -1 表示永不过期,-2 表示键不存在,若需取消过期时间,使用 persist key。
数据类型操作
Redis 支持 5 种基本数据类型,其操作命令各有特点:

-
String(字符串)
set key value设置键值,get key获取值,支持批量操作mget key1 key2和mset key1 value1 key2 value2,数值类型可通过incr(递增)、decr(递减)等命令实现原子计算,incr counter将键值加 1。 -
Hash(哈希)
适合存储对象结构,hset key field value设置字段值,hget key field获取值,hgetall key返回所有字段与值。hexists key field检查字段是否存在,hdel key field1 field2删除指定字段。 -
List(列表)
有序字符串集合,支持双向操作。lpush key value1 value2从左侧插入元素,rpush key value从右侧插入;lpop key和rpop key分别从左右侧弹出元素;lrange key 0 -1获取列表全部元素。 -
Set(集合)
无序且不重复的元素集合。sadd key member1 member2添加成员,smembers key获取所有成员,sismember key member判断成员是否存在,sinter key1 key2求两个集合的交集。 -
ZSet(有序集合)
在 Set 基础上增加分数属性,支持排序。zadd key score1 member1 score2 member2添加成员及其分数,zrange key 0 -1按分数升序输出,zrevrange key 0 -1降序输出,zrank key member查看成员排名。
高级功能与实用技巧
Redis 的高级功能进一步扩展了其应用场景。持久化方面,save 命令同步保存数据到磁盘,会阻塞服务器;bgsave 异步执行,适合生产环境。事务通过 multi、exec、discard 实现,确保一组命令的原子性。
发布订阅功能中,publish channel message 发布消息,subscribe channel 订阅频道,适用于实时消息推送。管道(Pipeline) 可批量执行命令减少网络开销,redis-cli --pipe 导入数据时提升效率。
注意事项
- 避免在生产环境使用
keys命令,改用scan防止阻塞。 - 大数据操作时注意内存消耗,可通过
--bigkeys参数分析键的内存分布。 - 持久化需根据业务需求选择
RDB(快照)或AOF(日志)模式,或两者结合使用。
掌握以上命令和技巧,能够充分发挥 Redis 在 Linux 环境下的高性能优势,为系统架构提供稳定支持。