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常用语法命令及使用示例详解》

相关推荐
老邓计算机毕设2 小时前
SSM学生选课系统xvbna(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生选课系统·ssm 框架·高校教学管理
難釋懷3 小时前
SpringDataRedis数据序列化器
redis·缓存
枷锁—sha3 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全
逍遥德5 小时前
PostgreSQL 中唯一约束(UNIQUE CONSTRAINT) 和唯一索引(UNIQUE INDEX) 的核心区别
数据库·sql·postgresql·dba
工业甲酰苯胺5 小时前
字符串分割并展开成表格的SQL实现方法
数据库·sql
科技块儿6 小时前
IP定位技术:游戏反外挂体系中的精准识别引擎
数据库·tcp/ip·游戏
衫水6 小时前
[特殊字符] MySQL 常用指令大全
数据库·mysql·oracle
卓怡学长6 小时前
m115乐购游戏商城系统
java·前端·数据库·spring boot·spring·游戏
小句7 小时前
SQL中JOIN语法详解 GROUP BY语法详解
数据库·sql
阿杰 AJie7 小时前
MySQL 里给表添加索引
数据库·mysql