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

ops/2024/9/20 13:56:24/ 标签: 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:6380Redis实例上,并使用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常用语法命令及使用示例详解》


http://www.ppmy.cn/ops/40763.html

相关文章

MySQL 数据库事务 ACID 特性

什么是数据库事务 将一些对数据库的操作组成一个集合,这个集合就是事务。事务的特点,包含在内的操作要么都执行,要么都失败。 关于事务经典的问题就是金融转账了,小明要向小红转账1000元,转账的过程中包含了以下操作…

Reactor Netty TCP 服务器端-响应式编程-011

🤗 ApiHug {Postman|Swagger|Api...} = 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Next Generation API Development Platform…

大模型微调方法汇总

微调方法 Freeze方法P-tuning方法 prefix-tuningPrompt TuningP-tuning v1P-tuning v2Lora方法 重要相关参数LoRA 的优势Qlora方法 相关参数微调经验 模型选择模型大小选择数据处理微调方案英文模型需要做词表扩充吗?如何避免灾难遗忘大模型的幻觉问题微调后的输出…

一起了解开源自定义表单的优势表现

随着社会的进步和科技的发展,越来越多的中小企业希望采用更为先进的软件平台,助力企业实现高效率的流程化管理。低代码技术平台、开源自定义表单已经慢慢走入大众视野,成为一款灵活、高效的数字化转型工具。流辰信息专注于低代码技术平台的研…

【论文阅读】<YOLOP: You Only Look Once for PanopticDriving Perception>

Abstract 全视驾驶感知系统是自动驾驶的重要组成部分。一个高精度的实时感知系统可以帮助车辆在驾驶时做出合理的决策。我们提出了一个全视驾驶感知网络(您只需寻找一次全视驾驶感知网络(YOLOP)),以同时执行交通目标检…

【退役之重学Java】关于 Redis

一、Redis 都有哪些数据类型 String 最基本的类型,普通的set和get,做简单的kv缓存hash 这是一个类似map 的一种结构,这个一般可以将结构化的数据,比如一个对象(前提是这个对象没有嵌套其他的对象)给缓存在…

es6语法总结

【1】语法 (1)声明变量(let-var-const) 变量提升: 是JavaScript引擎在代码执行前将变量的声明部分提升到作用域顶部的行为。尽管变量的声明被提升了,变量的赋值(即初始化)仍然保留在原来的位置。因此&…

1-3 如何学习,才能让这门课真正发挥价值

如何学习,才能让这门课真正发挥价值 在正式踏上产品经理学习之路前。我希望以一名课程产品经理的身份,来向你解释下这门课的设计理念和学习方法,以便让它真正对你有所帮助。 为什么这么说呢?是因为我发现,大都具备非常…

13.跳跃游戏

文章目录 题目简介题目解答解法一:贪心算法+动态规划代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 跳跃游戏面试题 相关的讲解!😀 题目简介 题目解答 思路:这…

BUG:PyAutoGUI pyautogui.ImageNotFoundException

BUG:PyAutoGUI pyautogui.ImageNotFoundException 环境 python 3.10 PyAutoGUI0.9.54 PyScreeze0.1.30BUG详情 在确定屏幕存在指定图片的情况下,使用PyAutoGUI中的locateCenterOnScreen()函数识别图片失败弹出这个bug。 注意: 1 如果屏幕不存在指定图…

电影网站|基于SSM+vue的电影网站系统(源码+数据库+文档)

电影网站 目录 基于SSMvue的电影网站系统 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道…

IT行业现状与未来趋势

你眼中的IT行业现状与未来趋势 IT行业当前处于高速发展阶段,涵盖了各种技术领域,如人工智能、大数据、云计算、物联网、区块链等。以下是我眼中的一些现状和未来趋势: 1. 人工智能(AI)的普及和应用广泛化&#xff1a…

一次pytorch分布式训练精度调试过程

现象: loss不下降 过程如下: 1.减少层数,准备最小复现环境 2.dropout设置为0,重复运行二次,对比loss是否一致 3.第二次迭代开始loss不一致 4.对比backward之后的梯度,发现某一个梯度不一致 5.dump得到所有算子的规模,单算子测试…

Cocos Creator 3.8.x报错:5302

在小游戏加载某个bundle后,如果报以下错误: 5302:Can not find class %s 说明bundle中某个预制件*.prefab引用了未加载的bundle的资源。 解决方法有两个: 1、将引用的资源移到预制件*.prefab相同的bundle下; 2、将…

三极管 导通条件

一、三极管理解 三极管是电子行业常用的元器件之一,他是一种电流型控制的器件,他有三种工作状态:截止区,放大区、饱和区。当三极管当做开关使用时,他工作在饱和区。下面简短讲解三极管作为开关使用的方法,只…

OpenMVS学习笔记(一):WSL编译安装测试

1.CUDA和CUDNN安装 [1] WSL版本cuda安装: >> wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin >> sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 >> wg…

Redis 基础之Redis 配置

Redis 配置 Redis CONFIG GET 命令语法格式编辑配置Redis 配置参数说明 Redis 提供了很多配置选项来优化 Redis 服务 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf 可以通过 Redis CONFIG 命令查看或设置配置项 Redis CONFIG GET 命令语法格式 Re…

【Python技术】使用akshare、pandas高效复盘每日涨停板行业分析

作为一个程序员宝爸,每天的时间很宝贵,工作之余除了辅导孩子作业,就是补充睡眠。 怎么快速高效的进行当天A股涨停板的复盘,便于第二天的跟踪。这里简单写个示例, 获取当天连涨数排序,以及所属行业排序。 …

深入解析MySQL中的事务(上)

MySQL事务管理 一、事务的基本概念为什么需要事务?1. 数据完整性2. 并发控制3. 错误恢复4. 复杂业务逻辑的支持5. 安全性 为什么会出现事务查看引擎是否支持事务事务提交方式自动提交(Automatic Commit)手动提交(Manual Commit&am…

Go语言中context原理及使用

Golang中,context为我们提供了在跨API边界和进程之间传递请求作用域的deadline,取消信号,和其他请求响应的值的能力。 context包定义了Context类型,它在API边界和进程之间提供了一种传递传递请求作用域的deadline,取消…