Redis常用语法命令及使用示例详解

点击下载《Redis常用语法命令及使用示例详解》

Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中介。它支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等类型,并且提供了丰富的命令来进行数据的增删改查。

以下是一些常用 Redis 命令的详细使用说明及示例:

1. 字符串(String)

SET
  • 描述:设置键值对。
  • 语法SET key value
  • 示例SET mykey "Hello Redis"
GET
  • 描述:获取键对应的值。
  • 语法GET key
  • 示例GET mykey,将返回 "Hello Redis"
DEL
  • 描述:删除一个或多个键。
  • 语法DEL key [key ...]
  • 示例DEL mykey,将删除键 "mykey"

2. 哈希(Hash)

HSET
  • 描述:在哈希表中设置字段的值。
  • 语法HSET key field value
  • 示例HSET myhash field1 "value1"
HGET
  • 描述:获取哈希表中字段的值。
  • 语法HGET key field
  • 示例HGET myhash field1,将返回 "value1"
HDEL
  • 描述:删除哈希表中的一个或多个字段。
  • 语法HDEL key field [field ...]
  • 示例HDEL myhash field1,将删除哈希表 "myhash" 中的 "field1" 字段

3. 列表(List)

Redis中的列表是简单的字符串列表,按照插入顺序排序。你可以从列表的两端推入或者弹出元素。

LPUSH
  • 描述:将一个或多个值插入到列表的左侧。
  • 语法LPUSH key value [value ...]
  • 示例LPUSH mylist "one",将一个值 "one" 插入到 "mylist" 列表的左侧。
RPUSH
  • 描述:将一个或多个值插入到列表的右侧。
  • 语法RPUSH key value [value ...]
  • 示例RPUSH mylist "two",将一个值 "two" 插入到 "mylist" 列表的右侧。
LPOP
  • 描述:移除并获取列表的第一个元素。
  • 语法LPOP key
  • 示例LPOP mylist,移除并返回 "mylist" 列表的第一个元素。
RPOP
  • 描述:移除并获取列表的最后一个元素。
  • 语法RPOP key
  • 示例RPOP mylist,移除并返回 "mylist" 列表的最后一个元素。
LRANGE
  • 描述:获取列表指定范围内的元素。
  • 语法LRANGE key start stop
  • 示例LRANGE mylist 0 -1,获取 "mylist" 列表中的所有元素(从索引0到最后一个元素)。

4. 集合(Set)

Redis中的集合是字符串的无序集合。集合成员是唯一的,不存在重复的成员。

SADD
  • 描述:将一个或多个成员添加到集合中。
  • 语法SADD key member [member ...]
  • 示例SADD myset "member1",将 "member1" 添加到 "myset" 集合中。
SMEMBERS
  • 描述:返回集合中的所有成员。
  • 语法SMEMBERS key
  • 示例SMEMBERS myset,返回 "myset" 集合中的所有成员。
SREM
  • 描述:从集合中移除一个或多个成员。
  • 语法SREM key member [member ...]
  • 示例SREM myset "member1",从 "myset" 集合中移除 "member1"。
SISMEMBER
  • 描述:检查给定值是否是集合的成员。
  • 语法SISMEMBER key member
  • 示例SISMEMBER myset "member1",检查 "member1" 是否是 "myset" 集合的成员。

5. 有序集合(Sorted Set)

Redis中的有序集合是字符串集合,每个元素都会关联一个double类型的分数。集合成员是唯一的,但分数(score)可以重复。

ZADD
  • 描述:将一个或多个成员及其分数添加到有序集合中。
  • 语法ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
  • 示例ZADD mysortedset 1 "one",将 "one" 及其分数1添加到 "mysortedset" 有序集合中。
ZRANGE
  • 描述:返回有序集合中指定排名范围的成员。
  • 语法ZRANGE key start stop [WITHSCORES]
  • 示例ZRANGE mysortedset 0 -1 WITHSCORES,返回 "mysortedset" 有序集合中的所有成员及其分数。
ZREM
  • 描述:从有序集合中移除一个或多个成员。
  • 语法ZREM key member [member ...]
  • 示例ZREM mysortedset "one",从 "mysortedset" 有序集合中移除 "one"。
ZRANK
  • 描述:返回有序集合中指定成员的排名。
  • 语法ZRANK key member
  • 示例ZRANK mysortedset "one",返回 "one" 在 "mysortedset" 有序集合中的排名。

6. 键值对通用命令

EXISTS
  • 描述:检查一个键是否存在。
  • 语法EXISTS key [key ...]
  • 示例EXISTS mykey,如果键 "mykey" 存在则返回 1,否则返回 0。
TYPE
  • 描述:返回键所存储的值的类型。
  • 语法TYPE key
  • 示例TYPE mykey,将返回 "string"、"hash"、"list"、"set"、"zset" 等类型。
EXPIRE
  • 描述:为键设置一个过期时间(以秒为单位)。
  • 语法EXPIRE key seconds
  • 示例EXPIRE mykey 10,将 "mykey" 的过期时间设置为 10 秒后。
TTL
  • 描述:获取键的剩余生存时间(TTL, time to live)。
  • 语法TTL key
  • 示例TTL mykey,如果 "mykey" 设置了过期时间,则返回剩余的秒数;否则返回 -1。

7. 发布/订阅模式

PUBLISH
  • 描述:发布消息到指定的频道。
  • 语法PUBLISH channel message
  • 示例PUBLISH mychannel "Hello, Redis!",将消息 "Hello, Redis!" 发布到 "mychannel" 频道。
SUBSCRIBE
  • 描述:订阅一个或多个频道。
  • 语法SUBSCRIBE channel [channel ...]
  • 示例SUBSCRIBE mychannel,订阅 "mychannel" 频道。
UNSUBSCRIBE
  • 描述:退订一个或多个频道。
  • 语法UNSUBSCRIBE [channel [channel ...]]
  • 示例UNSUBSCRIBE mychannel,退订 "mychannel" 频道。

8. 服务器相关命令

INFO
  • 描述:获取服务器的信息。
  • 语法INFO [section]
  • 示例INFO server,获取服务器的详细信息。
FLUSHDB
  • 描述:删除当前数据库中的所有键。
  • 语法FLUSHDB
  • 示例FLUSHDB,删除当前数据库中的所有键。
FLUSHALL
  • 描述:删除所有数据库中的所有键。
  • 语法FLUSHALL
  • 示例FLUSHALL,删除所有数据库中的所有键。
PING
  • 描述:测试服务器是否运行正常。
  • 语法PING
  • 示例PING,如果服务器正常,则返回 "PONG"。
ECHO
  • 描述:回显给定的字符串。
  • 语法ECHO message
  • 示例ECHO "Hello, Redis!",服务器将返回"Hello, Redis!"。

9. 事务处理

Redis支持简单的事务处理,允许用户将多个命令打包成一个事务块,以确保这些命令的原子性执行。

MULTI
  • 描述:标记一个事务块的开始。
  • 语法MULTI
  • 示例MULTI,开始一个新的事务块。
EXEC
  • 描述:执行事务块中的所有命令。
  • 语法EXEC
  • 示例 :在MULTI命令之后,可以输入多个Redis命令,然后使用EXEC命令执行它们。
DISCARD
  • 描述:取消事务,放弃事务块中的所有命令。
  • 语法DISCARD
  • 示例DISCARD,取消当前未执行的事务块。

10. Lua 脚本

Redis支持使用Lua脚本执行多个命令,并可以将脚本的结果作为单个命令的返回值。

EVAL
  • 描述:执行一个Lua脚本。
  • 语法EVAL script numkeys key [key ...] arg [arg ...]
  • 示例EVAL "return {KEYS[1],ARGV[1]}" 1 mykey myvalue,这个脚本将返回键"mykey"和参数"myvalue"。
EVALSHA
  • 描述:使用脚本的SHA1摘要执行Lua脚本,用于缓存脚本。
  • 语法EVALSHA sha1 numkeys key [key ...] arg [arg ...]
  • 示例 :首先,你需要使用SCRIPT LOAD命令将脚本加载到Redis中,并获取其SHA1摘要,然后使用EVALSHA和该摘要执行脚本。

11. 持久化

Redis支持将数据持久化到磁盘上,以防止数据丢失。

SAVE
  • 描述:同步保存当前数据库的数据到磁盘上。
  • 语法SAVE
  • 注意SAVE命令会阻塞Redis服务器直到保存完成,因此不建议在生产环境中频繁使用。
BGSAVE
  • 描述:在后台异步保存当前数据库的数据到磁盘上。
  • 语法BGSAVE
  • 注意BGSAVE命令不会阻塞Redis服务器,它会在后台执行保存操作。

12. 数据迁移

Redis支持将数据从一个实例迁移到另一个实例。

MIGRATE
  • 描述:将键从一个Redis实例迁移到另一个Redis实例。
  • 语法MIGRATE host port key|"" destination-db timeout [COPY] [REPLACE] [KEYS key [key ...]] [DB num] [AUTH password] [KEYS_ASK] [CLUSTER]
  • 示例MIGRATE 127.0.0.1 6380 mykey 0 5000 REPLACE,这个命令将键"mykey"从当前实例迁移到运行在127.0.0.1:6380的Redis实例上,并使用REPLACE选项来覆盖目标实例上已存在的键。

13. 扫描命令

Redis提供了扫描命令来迭代数据库中的键,而不是一次性获取所有键(这可能会导致Redis阻塞)。

SCAN
  • 描述:迭代数据库中的键。
  • 语法SCAN cursor [MATCH pattern] [COUNT count]
  • 示例SCAN 0 MATCH user*: COUNT 100,这个命令将从游标0开始,迭代所有以"user:"开头的键,并每次返回最多100个键。

14. 配置命令

Redis支持一系列的配置命令,允许用户查询或修改服务器的配置参数。

CONFIG GET
  • 描述:获取配置参数的值。
  • 语法CONFIG GET parameter
  • 示例CONFIG GET maxmemory,获取Redis实例的最大内存限制。
CONFIG SET
  • 描述:设置配置参数的值。
  • 注意 :不是所有的配置参数都可以使用CONFIG SET命令来动态修改。有些配置参数需要在Redis服务器启动时设置,或者需要重启服务器才能使修改生效。
  • 语法CONFIG SET parameter value
  • 示例CONFIG SET maxmemory 1073741824,将Redis实例的最大内存限制设置为1GB(1073741824字节)。

15. 客户端命令

Redis提供了一些命令来管理客户端连接。

CLIENT LIST
  • 描述:列出当前连接到Redis服务器的所有客户端连接。
  • 语法CLIENT LIST
  • 示例CLIENT LIST,列出所有客户端连接及其详细信息。
CLIENT KILL
  • 描述:关闭指定的客户端连接。
  • 语法CLIENT KILL [ip:port] [ID client-id] [TYPE normal|slave|pubsub] [ADDR ip:port] [SKIPME yes/no]
  • 示例CLIENT KILL IPADDR 127.0.0.1:6379,关闭来自IP地址127.0.0.1和端口6379的客户端连接。

点击下载《Redis常用语法命令及使用示例详解》

相关推荐
登云时刻14 分钟前
Kubernetes集群外连接redis集群和使用redis-shake工具迁移数据(二)
redis·容器·kubernetes
远歌已逝2 小时前
维护在线重做日志(二)
数据库·oracle
qq_433099403 小时前
Ubuntu20.04从零安装IsaacSim/IsaacLab
数据库
Dlwyz3 小时前
redis-击穿、穿透、雪崩
数据库·redis·缓存
工业甲酰苯胺5 小时前
Redis性能优化的18招
数据库·redis·性能优化
没书读了6 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
i道i7 小时前
MySQL win安装 和 pymysql使用示例
数据库·mysql
小怪兽ysl7 小时前
【PostgreSQL使用pg_filedump工具解析数据文件以恢复数据】
数据库·postgresql
wqq_9922502777 小时前
springboot基于微信小程序的食堂预约点餐系统
数据库·微信小程序·小程序
爱上口袋的天空7 小时前
09 - Clickhouse的SQL操作
数据库·sql·clickhouse