Redis(二) - Redis命令详解

文章目录

  • 前言
  • 一、启动Redis并进入客户端
    • 1. 启动Redis
    • 2. 进入Redis客户端
    • 3. 使用IDEA连接Redis
  • 二、查看命令帮助信息
    • 1. 查看所有命令
    • 2. 查看指定命令帮助
  • 三、键操作命令
    • 1. set命令
    • 2. mset命令
    • 3. keys命令
    • 4. get命令
    • 5. mget命令
    • 6. dump命令
    • 7. exists命令
    • 8. type命令
    • 9. rename命令
    • 10. expire命令
    • 11. ttl命令
    • 12. persist命令
    • 13. del命令
  • 四、字符串操作命令
    • 1. set命令
    • 2. mset命令
    • 3. get命令
    • 4. mget命令
    • 5. getset命令
    • 6. strlen命令
    • 7. getrange命令
    • 8. setrange命令
    • 9. append命令
  • 五、列表操作命令
    • 1. rpush命令
    • 2. lpush命令
    • 3. lrange命令
    • 4. lindex命令
    • 5. rpop命令
    • 6. lpop命令
    • 7. llen命令
    • 8. lrem命令
  • 六、集合操作命令
    • 1. sadd命令
    • 2. scard命令
    • 3. smembers命令
    • 4. sismember命令
    • 5. srem命令
    • 6. smove命令
  • 七、哈希表操作命令
    • 1. hset命令
    • 2. hmset命令
    • 3. hget命令
    • 4. hmget命令
    • 5. hgetall命令
    • 6. hkeys命令
    • 6. hkeys命令
    • 7. hdel命令
  • 八、有序集合操作命令
    • 1. zadd命令
    • 2. zcard命令
    • 3. zcount命令
    • 4. zrange命令
    • 5. zscore命令
    • 6. zrem命令


前言

在当今数据驱动的应用开发领域,高效的数据存储与管理至关重要。Redis,作为一款高性能的键值对存储数据库,以其出色的性能、丰富的数据结构和广泛的应用场景,成为了众多开发者构建强大应用的得力工具。
无论是缓存数据以加速应用响应,还是处理实时数据、实现分布式锁,Redis 都能发挥关键作用。本教程旨在为初学者和有一定经验的开发者,全面且系统地介绍 Redis 的基础操作,助力读者快速上手 Redis,开启高效数据处理的大门。从 Redis 的启动与客户端连接,到各类命令的详细讲解,我们将逐步深入 Redis 的世界,探索其丰富功能,让读者在实践中掌握 Redis 的核心用法,为实际项目开发奠定坚实基础。


一、启动Redis并进入客户端

1. 启动Redis

打开一个新的命令提示符窗口(cmd),执行如下命令启动 Redis。

redis-server

启动完成如下图所示:

在这里插入图片描述

2. 进入Redis客户端

打开一个新的命令提示符窗口(cmd),执行如下命令进入 Redis 客户端。

redis-cli

如下图所示:

在这里插入图片描述

3. 使用IDEA连接Redis

在idea中点击数据库图标,点击添加数据源,找到Redis选项并点击,如下图所示:

在这里插入图片描述

在添加Redis数据源页面,输入自定义的连接名称、主机ip地址、选择无身份验证、选择使用的数据库编号为0、点击测试连接,测试成功后依次点击应用和确定。

在这里插入图片描述


二、查看命令帮助信息

1. 查看所有命令

command

在这里插入图片描述

2. 查看指定命令帮助

查看指定命令的帮助信息语法如下:

help <命令>

示例:查看set命令的帮助信息。

help set

在这里插入图片描述


三、键操作命令

1. set命令

set命令用于为指定键设置值,键不存在时为新增操作,键存在时为更新操作,语法如下:

set <key> <value>

示例:给school键设置值为dy。

set school dy

在这里插入图片描述

2. mset命令

mset命令用于为多个指定键设置值,键不存在时为新增操作,键存在时为更新操作,语法如下:

mset <key1> <value1> <key2> <value2> ...

示例:给k1键设置值为v1,k2键设置值为v2,k3键设置值为v3。

mset k1 'v1' k2 'v2' k3 'v3'

在这里插入图片描述

3. keys命令

keys命令用于查找所有符合给定模式的键,语法如下:

keys <pattern>

示例1:查看所有键。

keys *

在这里插入图片描述

示例2:查看所有以k开头的键。

keys k*

在这里插入图片描述

4. get命令

get命令用于获取指定键的值,语法如下:

get <key>

示例:查看scool键的值。

get school

在这里插入图片描述

5. mget命令

mget命令用于获取多个指定键的值,语法如下:

mget <key1> <key2> ...

示例:查看k1、k2、k3键的值。

mget k1 k2 k3

在这里插入图片描述

6. dump命令

dump命令用于返回存储在指定键处的值的序列化版本,语法如下:

dump <key>

示例:查看k1键的值的序列化版本。

dump k1

在这里插入图片描述

7. exists命令

exists命令用于确定一个或多个键是否存在,语法如下:

exists <key1> <key2> ...

示例1:查看school键是否存在。

exists school

在这里插入图片描述

示例2:查看k1、k2、k3、k4、k5键是否存在。

exists k1 k2 k3 k4 k5

在这里插入图片描述

8. type命令

type命令用于查看存储在指定键处的值的类型,语法如下:

type <key>

示例:查看school键的值的类型。

type school

在这里插入图片描述

9. rename命令

rename命令用于重命名一个键,语法如下:

rename <key> <new_key>

示例:把school键重命名为new_school键。

rename school new_school

在这里插入图片描述

10. expire命令

expire命令用于设置键的生存时间(以秒为单位),语法如下:

expire <key> <seconds>

示例:把k3键的生存时间设置为600秒。

expire k3 600

在这里插入图片描述

11. ttl命令

ttl命令用于获取一个键的剩余存活时间,语法如下:

ttl <key>

示例:查看k3键的剩余存活时间。

ttl k3

在这里插入图片描述

12. persist命令

persist命令用于删除指定键的存活时间(把键设置为一直存在),语法如下:

persist <key>

示例:删除k3键的存活时间。

persist k3

在这里插入图片描述

13. del命令

del命令用于删除一个或多个指定键,语法如下:

del <key1> <key2> ...

示例1:删除school键。

del school

在这里插入图片描述
示例2:删除k1、k2、k3键。

del k1 k2 k3

在这里插入图片描述


四、字符串操作命令

1. set命令

示例:给字符串键str1设置值为value1

set str1 value1

2. mset命令

示例:给字符串键str2str3str4分别设置值为value2value3value4

mset str2 value2  str3 value3 str4 value4

3. get命令

示例:获取字符串键str1的值。

get str1

4. mget命令

示例:获取字符串键str2str3str4的值。

mget str2 str3 str4

5. getset命令

getset命令用于获取指定字符串键的旧值并设置新值,语法如下:

getset <key> <value>

示例:获取字符串键str1的旧值,并设置新值为new_value1

getset str1 new_value1

查看设置后的新值。

get str1

6. strlen命令

strlen命令用于获取指定字符串键的值得长度,语法如下:

strlen <key>

示例:获取字符串键str1的值的长度。

strlen str1

7. getrange命令

getrange命令用于根据索引范围获取指定字符串键的值的内容,语法如下:

getrange <key> <start> <end>

示例:获取字符串键str1的索引0-5的值的内容。

getrange str1 0 5

8. setrange命令

setrange命令用于覆盖从指定偏移量开始的键处字符串的一部分内容,语法如下:

setrange <key> <offset> <value>

示例:把字符串键str1从索引2开始的后面三个字母的内容替换为aaa。

setrange str1 2 aaa

查看设置后的新值。

get str1

9. append命令

append命令用于向指定键的值的末尾追加内容,语法如下:

append <key> <value>

示例:向字符串键str1的结尾追加内容bbb

append str1 bbb

查看追加后的新值。

get str1

在这里插入图片描述


五、列表操作命令

1. rpush命令

rpush命令用于在列表右端向列表追加一个或多个值,语法如下:

rpush <key> <value1> <value2> ...

示例:在列表右端向列表color中添加多个值。

rpush color blue green purple red white

在这里插入图片描述

2. lpush命令

lpush命令用于在列表左端向列表追加一个或多个值,语法如下:

lpush <key> <value1> <value2> ...

示例:在列表左端向列表color中添加多个值。

lpush color blue2 green2 purple2 red2 white2

在这里插入图片描述

3. lrange命令

lrange命令用于获取一个列表中指定范围内的元素,语法如下:

lrange <key> <start> <stop>

示例1:获取列表color中索引0-5的元素。

lrange color 0 5

在这里插入图片描述

示例2:获取列表color中的所有元素。

lrange color 0 -1

在这里插入图片描述

4. lindex命令

lindex命令用于根据指定索引获取列表中的一个元素,语法如下:

lindex <key> <index>

示例:获取列表color中索引为2的元素。

lindex color 2

在这里插入图片描述

5. rpop命令

rpop命令用于移除并获取列表中的最后一个(最右端)元素,语法如下:

rpop <key>

示例:移除并获取列表color中的最后一个(最右端)元素。

rpop color

在这里插入图片描述

6. lpop命令

lpop命令用于移除并获取列表中的第一个(最左端)元素,语法如下:

lpop <key>

示例:移除并获取列表color中的第一个(最左端)元素。

lpop color

在这里插入图片描述

7. llen命令

llen命令用于根据指定列表键获取列表长度,语法如下:

llen <key>

示例:获取列表color的长度。

llen color

在这里插入图片描述

8. lrem命令

lrem命令用于从列表中移除元素,语法如下:

lrem <key> <count> <value>

示例1:从列表开头开始搜索移除列表color中1个red元素。

lrem color 1 red

示例2:从列表结尾开始搜索移除列表color中3个blue元素。

lrem color -3 blue

示例3:移除列表color中所有个blue2元素。

lrem color 0 blue2

在这里插入图片描述


六、集合操作命令

1. sadd命令

sadd命令用于在集合中添加一个或多个成员,语法如下:

sadd <key> <member1> <member2> ...

示例:给集合键set1添加多个成员。

sadd set1 mem1 mem2 mem3

2. scard命令

scard命令用于获取集合中成员的数量,语法如下:

scard <key>

示例:查看集合键set1中成员的数量。

scard set1

3. smembers命令

smembers命令用于获取集合中所有成员,语法如下:

smembers <key>

示例:查看集合键set1中的所有成员。

smembers set1

4. sismember命令

sismember命令用于检查成员是否在集合中,语法如下:

sismember <key> <member>

示例:检查成员mem1是否在集合set1中。

sismember set1 mem1

5. srem命令

srem命令用于移除集合中一个或多个成员,语法如下:

srem <key> <member1> <member2> ...

示例:移除集合set1中成员mem3。

srem set1 mem3

6. smove命令

smove命令用于把一个集合中一个成员移动到另一个集合中,语法如下:

smove <source> <destination> <member>

示例:把集合set1中成员mem2移动到集合set2中。

smove set1 set2 mem2

在这里插入图片描述


七、哈希表操作命令

1. hset命令

hset命令用于在哈希表中给指定字段添加指定值,语法如下:

hset <key> <field> <value>

示例:给哈希表student添加一个学生信息。

hset student:1 name zhangsan
hset student:1 age 19
hset student:1 address yunnan

在这里插入图片描述

2. hmset命令

hmset命令用于在哈希表中给多个指定字段添加指定值,语法如下:

hmset <key> <field1> <value1> <field2> <value2> ...

示例:给哈希表student添加一个学生信息。

hmset student:2 name lisi age 20 address guizhou

在这里插入图片描述

3. hget命令

hget命令用于获取一个hash字段的值,语法如下:

hget <key> <field>

示例:获取hash键student:2中name字段的值。

hget student:2 name

在这里插入图片描述

4. hmget命令

hmget命令用于获取多个hash字段的值,语法如下:

hmget <key> <field1>  <field2> ...

示例:获取hash键student:2中name、age和address字段的值。

hmget student:2 name age address

在这里插入图片描述

5. hgetall命令

hgetall命令用于获取一个hash表中的所有字段和值,语法如下:

hgetall <key>

示例:获取hash键student:2中的所有字段和值。

hgetall student:2

在这里插入图片描述

6. hkeys命令

hkeys命令用于获取一个hash表中的所有字段,语法如下:

hkeys <key>

示例:获取hash键student:2中的所有字段。

hkeys student:2

在这里插入图片描述

6. hkeys命令

hvals命令用于获取一个hash表中的所有值,语法如下:

hvals <key>

示例:获取hash键student:2中的所有值。

hvals student:2

在这里插入图片描述

7. hdel命令

hdel命令删除一个或多个哈希字段,语法如下:

hdel <key> <field1> <field2> ...

示例:删除hash键student:2中的age和address字段。

hdel student:2 age address

八、有序集合操作命令

1. zadd命令

zadd命令用于向一个排序集添加一个或多个成员,如果它已经存在,则更新它的分数,语法如下:

zadd <key> [NX|XX] [CH] [INCR] <score> <member> [<score> <member> ...]

[NX|XX]

  • NX:仅在成员不存在时才添加。如果成员已经存在于集合中,则不会更新其分数。
  • XX:仅在成员已存在时才更新其分数。如果成员不存在,则不会添加。
  • 这两个选项互斥,不能同时使用。

[CH]

  • 默认情况下,ZADD 返回的是新添加成员的数量。如果指定了 CH,则返回值变为被修改的成员总数(包括新增和更新分数的成员)。

[INCR]

  • ZADD 的行为从“设置分数”改为“增加分数”。即,指定成员的分数会加上给定的值(类似于 ZINCRBY 命令)。
  • 如果成员不存在,则默认分数为 0,然后加上给定的值。
  • 注意:当使用 INCR 时,只能指定一个成员及其分数。

示例:给有序集合salary添加多个分数和成员。

zadd salary 5000 zhnagsan 4500 lisi 6000 wangwu

在这里插入图片描述

2. zcard命令

zcard命令用于获取有序集合中成员的数量,语法如下:

zcard <key>

示例:获取有序集合salary中的成员数量。

zcard salary

在这里插入图片描述

3. zcount命令

zcount命令用于计算分数在给定值内的有序集合中的成员数量,语法如下:

zcount <key> <min> <max>

示例:计算有序集合中分数在5000-6500之间的成员数量。

zcount salary 5000 6500

在这里插入图片描述

4. zrange命令

zrange命令用于按索范围引返回已排序集合中的成员,语法如下:

zrange <key> <start> <stop> [WITHSCORES]

[WITHSCORES]:可选参数。如果指定了 WITHSCORES,则返回结果中会包含每个成员的分数。

示例:计算有序集合中分数在5000-6500之间的成员数量。

zrange salary 0 1

在这里插入图片描述

zrange salary 0 1 withscores

在这里插入图片描述

5. zscore命令

zscore命令用于获取有序集合中给定成员相关联的分数,语法如下:

zscore <key> <member>

示例:获取有序集合salary中成员wangwu的分数。

zscore salary wangwu

在这里插入图片描述

6. zrem命令

zrem命令用于在有序集合中移除一个或多个成员,语法如下:

zrem <key> <member1> <member2> ...

示例:移除有序集合salary中成员wangwu。

zrem salary wangwu

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/77229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】初识Qt(二)

目录 一、显示hello world1.1 图形化界面1.2 写代码 二、对象树三、使用输入框显示hello world四、使用按钮显示hello world 一、显示hello world 有两种方式实现hello world&#xff1a; 通过图形化界面&#xff0c;在界面上创建出一个控件&#xff0c;显示hello world通过写…

空调制冷量和功率有什么关系?

空调的制冷量和功率是衡量空调性能的两个核心参数,二者既有区别又紧密相关,以下是具体解析: 1. 基本定义 制冷量(Cooling Capacity)指空调在单位时间内从室内环境中移除的热量,单位为 瓦特(W) 或 千卡/小时(kcal/h)。它直接反映空调的制冷能力,数值越大,制冷效果越…

【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台

&#x1f4ab;《博主主页》&#xff1a;奈斯DB-CSDN博客 &#x1f525;《擅长领域》&#xff1a;擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(MongoDB)有了解 &#x1f496;如果觉得文章对你有所帮…

基于n8n的AI应用工作流原理与技术解析

基于n8n的AI应用工作流原理与技术解析 在AI技术深度融入企业数字化转型的今天&#xff0c;开源工作流自动化工具n8n凭借其灵活的架构和强大的集成能力&#xff0c;成为构建智能自动化流程的核心引擎。本文将从技术原理、AI融合机制、典型应用场景三个维度&#xff0c;解析n8n在…

经济指标学习(二)

系列文章目录 文章目录 系列文章目录1、市净率**一、定义与计算****二、核心意义****三、应用场景****四、局限性****五、分类与衍生指标****总结** 2、市销率**一、定义与计算****二、核心意义****三、优缺点分析****四、适用场景****五、与其他指标的对比****六、实际应用案例…

大语言模型减少幻觉的常见方案

什么是大语言模型的幻觉 大语言模型的幻觉&#xff08;Hallucination&#xff09;是指模型在生成文本时&#xff0c;输出与输入无关、不符合事实、逻辑错误或完全虚构的内容。这种现象主要源于模型基于概率生成文本的本质&#xff0c;其目标是生成语法合理、上下文连贯的文本&…

CSS 美化页面(四)

一、浮动float属性 ‌属性值‌‌描述‌‌适用场景‌left元素向左浮动&#xff0c;腾出右侧空间供其他元素使用&#xff0c;其他内容会围绕在其右侧‌。横向排列元素&#xff08;如导航菜单&#xff09;、图文混排布局‌。right元素向右浮动&#xff0c;腾出左侧空间供其他元素使…

如何将 .txt 文件转换成 .md 文件

一、因为有些软件上传文件的时候需要 .md 文件&#xff0c;首先在文件所在的目录中&#xff0c;点击“查看”&#xff0c;然后勾选上“文件扩展名”&#xff0c;这个时候该目录下的所有文件都会显示其文件类型了。 二、这时直接对目标的 .txt 文件进行重命名&#xff0c;把后缀…

C++ 迭代器失效详解:如何避免 vector 操作中的陷阱

目录 1. 什么是迭代器失效&#xff1f; 2. 哪些操作会导致迭代器失效&#xff1f; 2.1 vector 的插入操作&#xff08;push_back, insert&#xff09; 示例&#xff1a;push_back 导致迭代器失效 如何避免&#xff1f; 2.2 vector 的删除操作&#xff08;erase, pop_back&…

(EtherCAT 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

型号 协议转换通信网关 EtherCAT 转 EtherNet/IP MS-GW12 概述 MS-GW12 是 EtherCAT 和 EtherNet/IP 协议转换网关&#xff0c;为用户提供两种不同通讯协议的 PLC 进行数据交互的解决方案&#xff0c;可以轻松容易将 EtherNet/IP 网络接入 EtherCAT 网络中&#xff0c;方便…

榕壹云酒水定制系统:基于THinKPHP+MySQL+UniApp打造数字化时代的个性化购酒新体验

数字化浪潮下的酒水定制新机遇 在消费升级与个性化需求崛起的背景下&#xff0c;传统酒水行业正面临数字化转型的迫切需求。为此&#xff0c;我们团队基于ThinkPHPMySQLUniApp技术栈&#xff0c;开发了一套榕壹云酒水定制系统&#xff0c;旨在通过数字化手段解决消费者个性化购…

GR00T N1:面向通用类人机器人的开放基础模型

摘要 通用型机器人需要具备多功能的身体和智能的大脑。近年来&#xff0c;类人机器人的发展在构建人类世界中的通用自主性硬件平台方面展现出巨大潜力。一个经过大量多样化数据源训练的机器人基础模型&#xff0c;对于使机器人能够推理新情况、稳健处理现实世界的多变性以及快…

WebRTC实时通话EasyRTC嵌入式音视频通信SDK,构建智慧医疗远程会诊高效方案

一、方案背景 当前医疗领域&#xff0c;医疗资源分布不均问题尤为突出&#xff0c;大城市和发达地区优质医疗资源集中&#xff0c;偏远地区医疗设施陈旧、人才稀缺&#xff0c;患者难以获得高质量的医疗服务&#xff0c;制约医疗事业均衡发展。 EasyRTC技术基于WebRTC等先进技…

深入理解主成分分析(PCA):原理、算法与应用

内容摘要 本文深入剖析主成分分析&#xff08;PCA&#xff09;技术。介绍其通过正交变换简化数据维度的核心原理&#xff0c;详细推导基于最小投影距离和最大投影方差的算法过程&#xff0c;总结算法流程步骤。全面分析PCA的优缺点&#xff0c;并对比其与KPCA的差异。同时阐述…

uniapp-商城-25-顶部模块高度计算

计算高度&#xff1a; 使用computed进行顶部模块的计算。 总高度&#xff1a;bartotalHeight log 介绍--收款码这一条目 也就是上一章节的title的高度计算 bodybarheight。 在该组件中&#xff1a; js部分的代码&#xff1a; 包含了导出的名字&#xff1a; shop-head…

【MCP】第一篇:MCP协议深度解析——大模型时代的“神经连接层“架构揭秘

【MCP】第一篇&#xff1a;MCP协议深度解析——大模型时代的"神经连接层"架构揭秘 一、什么是MCP&#xff1f;二、为什么需要MCP&#xff1f;三、MCP的架构四、MCP与AI交互的原理4.1 ReAct&#xff08;Reasoning Acting&#xff09;模式4.2 Function Calling 模式 五…

李飞飞团队新作WorldScore:“世界生成”能力迎来统一评测,3D/4D/视频模型同台PK

从古老神话中对世界起源的幻想&#xff0c;到如今科学家们在实验室里对虚拟世界的构建&#xff0c;人类探索世界生成奥秘的脚步从未停歇。如今&#xff0c;随着人工智能和计算机图形学的深度融合&#xff0c;我们已站在一个全新的起点&#xff0c;能够以前所未有的精度和效率去…

[react]Next.js之自适应布局和高清屏幕适配解决方案

序言 阅读前首先了解即将要用到的两个包的作用 1.postcss-pxtorem 自动将 CSS 中的 px 单位转换为 rem 单位按照设计稿尺寸直接写 px 值&#xff0c;由插件自动计算 rem 值 2.amfe-flexible 动态设置根元素的 font-size&#xff08;即 1rem 的值&#xff09;根据设备屏幕宽度和…

C# 如何比较两个List是否相等?

简介 在 C# 里&#xff0c;比较两个 List 是否相等&#xff0c;需要考虑多个方面&#xff0c;例如列表中的元素顺序、元素本身是否相等。下面介绍几种常见的比较方法&#xff1a; 基本类型比较&#xff08;元素顺序必须一致&#xff09; var list1 new List<int> { 1…

【技术派后端篇】Redis分布式锁:原理、实践与应用

在当今的高并发系统中&#xff0c;分布式锁是保障数据一致性和系统稳定性的重要手段。今天&#xff0c;我们就来深入探讨一下Redis分布式锁&#xff0c;揭开它神秘的面纱。 1 本地锁与分布式锁的区别 在Java开发的早期阶段&#xff0c;我们接触过synchronized和Lock锁&#x…