菜鸟科技网

Redis命令有哪些?如何高效使用?

Redis作为高性能的内存数据库,其命令体系是使用和优化的核心,Redis命令通常以“命令名 参数 参数…”的格式执行,参数数量根据命令功能而定,例如SET命令需要键和值两个参数,而GET命令只需键一个参数,命令执行后,Redis会返回响应结果,成功时返回OK、特定值或数字,失败时返回错误信息(如以“-”开头的字符串)。

Redis命令有哪些?如何高效使用?-图1
(图片来源网络,侵删)

Redis命令按功能可分为多个类别,键值操作是基础,如SET key value(设置键值)、GET key(获取值)、DEL key(删除键)、EXISTS key(检查键是否存在)、TYPE key(返回值类型)等,EXPIRE key seconds可以为键设置过期时间,TTL key则返回键的剩余生存时间(秒),执行SET mykey "hello" EX 10设置键mykey及其值和10秒过期,10秒后GET该键将返回nil。

字符串操作方面,除了SET/GET,还有INCR key(值递增1,值需为整数)、DECR key(递减1)、INCRBY key increment(按指定值递增)等。INCR mycountmycount不存在,会初始化为0后递增,结果为1;若存在且为整数,则直接递增。

哈希表操作用于存储键值对集合,常用命令包括HSET key field value(设置哈希表字段值)、HGET key field(获取字段值)、HGETALL key(获取所有字段和值)、HDEL key field(删除字段)、HEXISTS key field(检查字段是否存在)。HSET user:1 name "Alice" age 25会为哈希表user:1设置两个字段,HGET user:1 name返回"Alice"。

列表操作支持在两端添加或移除元素,LPUSH key value1 value2…在左侧(头部)插入元素,RPUSH在右侧(尾部)插入,LPOP移除并返回左侧元素,RPOP移除并返回右侧元素,LRANGE key start stop获取列表片段(如LRANGE mylist 0 -1返回整个列表)。

Redis命令有哪些?如何高效使用?-图2
(图片来源网络,侵删)

集合操作是无序不重复元素集合,SADD key member1 member2…添加成员,SMEMBERS key获取所有成员,SREM key member删除成员,SINTER key1 key2求交集,SUNION key1 key2求并集。SADD myset "a" "b"添加成员后,SMEMBERS myset返回"a"、"b"。

有序集合在集合基础上增加分数,ZADD key score1 member1 score2 member2…添加成员并指定分数,ZRANGE key start stop [WITHSCORES]按分数升序获取成员(加WITHSCORES显示分数),ZREVRANGE key start stop [WITHSCORES]降序获取,ZSCORE key member获取成员分数。ZADD zset 1 "one" 2 "two"添加成员后,ZRANGE zset 0 -1 WITHSCORES返回"one" 1、"two" 2。

还有事务命令(MULTI/EXEC/DISCARD)、发布订阅(PUB/SUB)、持久化(SAVE/BGSAVE)等,事务通过MULTI开始,之后命令入队,EXEC执行或DISCARD放弃,确保命令原子性。

以下为常用命令示例总结:

Redis命令有哪些?如何高效使用?-图3
(图片来源网络,侵删)
命令类别 命令示例 功能说明
键值操作 SET key value 设置键值
GET key 获取键值
字符串操作 INCR key 键值递增1(需为整数)
哈希表操作 HSET key field value 设置哈希表字段值
列表操作 LPUSH key value 列表头部插入元素
集合操作 SADD key member 向集合添加成员(不重复)
有序集合 ZADD key score member 添加有序集合成员及分数

相关问答FAQs:

Q1: Redis中如何批量设置多个键值对?
A1: 可使用MSET命令,格式为MSET key1 value1 key2 value2…,例如MSET name "Alice" age 25 city "Beijing"会同时设置三个键值对,相比多次执行SET,MSET减少网络开销,效率更高。

Q2: 如何查看Redis中所有符合条件的键?
A2: 使用KEYS命令,格式为KEYS pattern,其中pattern支持通配符,如KEYS user:*匹配所有以"user:"开头的键,但需注意,KEYS命令会阻塞Redis服务器,在生产环境中慎用,推荐使用SCAN命令(非阻塞式迭代键)。

分享:
扫描分享到社交APP
上一篇
下一篇