常用的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 官方文档来深入了解和使用更多的命令。