常用的Redis命令介绍
Redis 是一个高性能的键值存储数据库,支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以下是一些常用的 Redis 命令,按数据结构分类:
通用命令
-
redis-cli:用于启动redis客户端; -
PING:检查 Redis 服务器是否运行。PING输出:
PONG -
redis-cli -h <主机地址> -p <端口码数> -a <账户密码>:用于在远程的redis上执行命令; -
EXISTS key:检查键是否存在。EXISTS mykey输出:
(integer) 1 # 1表示存在,0表示不存在 -
DEL key:删除指定的键。DEL mykey -
TYPE key:返回键的类型。TYPE mykey输出:
string # 可以是string、list、set、zset、hash等
字符串(String)
-
SET key value:设置指定键的值。SET mykey "Hello, Redis!" -
GET key:获取指定键的值。GET mykey输出:
"Hello, Redis!" -
INCR key:将指定键的整数值加1。INCR mycounter -
DECR key:将指定键的整数值减1。DECR mycounter -
APPEND key value:将值追加到现有键的值之后。APPEND mykey "World" -
STRLEN key:获取指定键的值的长度。STRLEN mykey -
MSET key1 value1 key2 value2 ...:同时设置多个键值对。MSET key1 "value1" key2 "value2" -
MGET key1 key2 ...:获取多个键的值。MGET key1 key2
哈希(Hash)
-
HSET key field value:设置哈希表中指定字段的值。HSET myhash field1 "value1" -
HGET key field:获取哈希表中指定字段的值。HGET myhash field1输出:
"value1" -
HGETALL key:获取哈希表中所有字段和值。HGETALL myhash输出:
1) "field1" 2) "value1" -
HSETNX key field value:仅当字段不存在时,设置哈希表字段的值。HSETNX myhash field1 "new_value" -
HEXISTS key field:检查哈希表中指定字段是否存在。HEXISTS myhash field1 -
HDEL key field:删除哈希表中的一个或多个字段。HDEL myhash field1 -
HLEN key:获取哈希表中的字段数量。HLEN myhash -
HKEYS key:获取哈希表中的所有字段名。HKEYS myhash -
HVALS key:获取哈希表中的所有值。HVALS myhash
列表(List)
-
LPUSH key value:将一个值插入到列表头部。LPUSH mylist "element1" -
RPUSH key value:将一个值插入到列表尾部。RPUSH mylist "element2" -
LPOP key:移出并获取列表的第一个元素。LPOP mylist输出:
"element1" -
RPOP key:移出并获取列表的最后一个元素。RPOP mylist输出:
"element2" -
LRANGE key start stop:获取列表指定范围内的元素。LRANGE mylist 0 -1输出:
1) "element1" 2) "element2" -
LSET key index value:将列表中指定索引位置的元素设置为新的值。LSET mylist 0 "new_element1" -
LINDEX key index:获取列表中指定索引位置的元素。LINDEX mylist 0 -
LLEN key:获取列表的长度。LLEN mylist -
LREM key count value:从列表中移除指定数量的某个值。LREM mylist 1 "element1" -
LTRIM key start stop:对一个列表进行修剪,只保留指定区间内的元素。LTRIM mylist 0 1
集合(Set)
-
SADD key member:向集合添加一个或多个成员。SADD myset "member1" SADD myset "member2" "member3" -
SMEMBERS key:返回集合中的所有成员。SMEMBERS myset输出:
1) "member1" 2) "member2" 3) "member3" -
SREM key member:移除集合中的一个或多个成员。SREM myset "member2"
有序集合(Sorted Set)
-
ZADD key score member:向有序集合添加一个成员,并设置分数。ZADD myzset 1 "member1" ZADD myzset 2 "member2" -
ZRANGE key start stop [WITHSCORES]:按索引范围返回有序集合中的成员。ZRANGE myzset 0 -1 WITHSCORES输出:
1) "member1" 2) "1" 3) "member2" 4) "2" -
ZREM key member:移除有序集合中的一个成员。ZREM myzset "member1" -
ZSCORE key member:获取有序集合中成员的分数。ZSCORE myzset "member1" -
ZCARD key:获取有序集合的成员数量。ZCARD myzset -
ZCOUNT key min max:计算指定分数区间内成员的数量。ZCOUNT myzset 1 2 -
ZRANK key member:返回有序集合中指定成员的排名(从低到高)。ZRANK myzset "member1" -
ZREVRANK key member:返回有序集合中指定成员的排名(从高到低)。ZREVRANK myzset "member1" -
ZREM key member:移除有序集合中的一个或多个成员。ZREM myzset "member1"
集合(Set)
-
SISMEMBER key member:判断成员是否存在于集合中。SISMEMBER myset "member1" -
SCARD key:获取集合的成员数量。SCARD myset -
SPOP key [count]:移除并返回集合中的一个或多个随机成员。SPOP myset 1 -
SRANDMEMBER key [count]:返回集合中的一个或多个随机成员,但不移除。SRANDMEMBER myset 2 -
SMOVE source destination member:将指定成员从一个集合移动到另一个集合。SMOVE myset1 myset2 "member1"
事务(Transaction)
-
MULTI:标记一个事务块的开始。MULTI -
EXEC:执行所有在事务块内的命令。EXEC -
DISCARD:取消事务块内的所有命令。DISCARD -
WATCH key:监视一个(或多个)键,如果在事务执行之前这个(或这些)键被修改,则事务被打断。WATCH mykey -
UNWATCH:取消所有键的监视。UNWATCH
发布/订阅(Pub/Sub)
-
PUBLISH channel message:将消息发布到指定频道。PUBLISH mychannel "Hello, World!" -
SUBSCRIBE channel:订阅指定的频道。SUBSCRIBE mychannel -
UNSUBSCRIBE [channel ...]:退订指定的频道。UNSUBSCRIBE mychannel
脚本(Scripting)
-
EVAL script numkeys key [key ...] arg [arg ...]:执行 Lua 脚本。EVAL "return redis.call('set', KEYS[1], ARGV[1])" 1 mykey "Hello" -
SCRIPT LOAD script:将脚本加载到脚本缓存但不执行。SCRIPT LOAD "return redis.call('set', KEYS[1], ARGV[1])" -
EVALSHA sha1 numkeys key [key ...] arg [arg ...]:根据给定的 SHA1 校验码执行缓存在服务器中的脚本。EVALSHA "sha1" 1 mykey "Hello"
其他常用命令
-
KEYS pattern:查找所有符合给定模式的键。KEYS *输出示例:
1) "mykey" 2) "myhash" 3) "mylist" 4) "myset" -
EXPIRE key seconds:为键设置生存时间(以秒为单位)。EXPIRE mykey 3600 -
TTL key:获取键的剩余生存时间(以秒为单位)。TTL mykey输出:
(integer) 3599 -
FLUSHDB:删除当前数据库中的所有键。FLUSHDB -
FLUSHALL:删除所有数据库中的所有键。FLUSHALL -
SAVE:同步保存数据到磁盘。SAVE -
BGSAVE:在后台异步保存数据到磁盘。BGSAVE -
INFO:获取 Redis 服务器的信息和统计数据。INFO -
CONFIG GET parameter:获取 Redis 配置参数的值。CONFIG GET maxmemory -
CONFIG SET parameter value:设置 Redis 配置参数的值。CONFIG SET maxmemory 512mb
这些命令只是 Redis 提供的部分功能,Redis 的命令集合非常丰富,能够满足各种数据管理和处理需求。可以参考Redis 官方文档来深入了解和使用更多的命令。