当前位置: 首页 > news >正文

快速掌握Redis基础知识及使用技巧

 Redis 是一个高性能、基于内存的键值数据库,其主要特点是支持多种数据结构和高并发读写操作。在本文中,我们将介绍 Redis 的基本概念和使用方法,以帮助读者快速入门 Redis。

Redis 的基本概念

Redis 是一种基于内存的高性能 key-value 存储系统,它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合等。Redis 具有以下基本概念:

  1. Key:Redis 的基本单位,是一个字符串,用于标识一个数据项。
  2. Value:Redis 中存储的数据,可以是字符串、哈希表、列表、集合或有序集合等多种数据结构。
  3. 数据结构:Redis 支持多种数据结构,每种数据结构都有自己的操作命令。例如,字符串支持 GET、SET 等操作,列表支持 LPUSH、RPUSH、LPOP、RPOP 等操作。
  4. 数据库:Redis 支持多个数据库,默认有 16 个数据库,通过编号从 0 到 15 进行标识。可以通过 SELECT 命令来切换数据库。
  5. TTL:每个 Redis key 都可以设置一个 TTL(Time To Live)过期时间,当过期时间到达时,该 key 将被自动删除。
  6. 持久化:Redis 支持数据持久化,可以将内存中的数据保存到硬盘中,以便在服务器重启后能够恢复数据。
  7. 主从复制:Redis 支持主从复制,可以将一个 Redis 服务器作为主服务器,其他 Redis 服务器作为从服务器,从主服务器同步数据,以提高数据的可用性和可靠性。
  8. 分布式:Redis 支持分布式架构,可以将数据分布到多个 Redis 节点上,以提高数据的处理能力和可靠性。

Redis 的安装与配置

在 Windows 上安装 Redis 可以使用 Redis 官方提供的 Windows 版本。可以按照以下步骤来进行安装:

  1. 下载 Redis Windows 版本。可以从 Redis 官方网站上下载 Windows 版本的 Redis,下载地址为 https://github.com/microsoftarchive/redis/releases。
  2. 解压 Redis 压缩包。下载完成后,将压缩包解压到任意文件夹中。
  3. 启动 Redis。进入解压后的 Redis 文件夹,在命令提示符中运行以下命令:
redis-server.exe redis.windows.conf

这将启动 Redis 服务。

      4.使用 Redis。在命令提示符中运行以下命令来连接 Redis:

redis-cli.exe -h 127.0.0.1 -p 6379

如果需要认证,可以在连接命令后添加 -a 参数。

毕竟是在本地安装,我们当然还可以直接进入到该安装目录下找到redis-server.exe和redis-cli.exe文件,双击他们就可以在本地直接启动了。

Redis 的数据类型

Redis 支持多种数据类型,常用的数据类型包括:

  1. 字符串(String):存储一个字符串或者二进制数据。
  2. 哈希表(Hash):存储键值对集合,类似于关联数组。
  3. 列表(List):存储一个有序的字符串列表。
  4. 集合(Set):存储一个无序的字符串集合。
  5. 有序集合(Sorted Set):存储一个有序的字符串集合,并为每个元素分配一个分数。

Redis 的基本操作

1.连接 Redis

在使用 Redis 前,需要先与 Redis 建立连接。可以使用 Redis 客户端程序或者编程语言提供的 Redis 库来连接 Redis。

2.设置键值对

Redis 是一个键值存储数据库,可以使用 SET 命令来设置键值对,例如:

SET key value

其中,key 为键名,value 为键值。

3.获取键值对

可以使用 GET 命令来获取键值对,例如:

GET key

其中,key 为键名。

4.设置过期时间

可以使用 EXPIRE 命令设置键的过期时间,例如:

EXPIRE key seconds

其中,key 为键名,seconds 为过期时间,以秒为单位。

5.检查键是否存在

可以使用 EXISTS 命令检查键是否存在,例如:

EXISTS key

其中,key 为键名。

6.删除键

可以使用 DEL 命令删除键,例如:

DEL key

其中,key 为键名。

7.清空数据库

可以使用 FLUSHDB 命令清空当前数据库,使用 FLUSHALL 命令清空所有数据库。

8.数据类型操作

Redis 支持多种数据类型,常用的数据类型包括字符串(String)、哈希表(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)等。可以使用相应的命令对不同的数据类型进行操作,例如:

  • 对字符串进行操作:
SET key value  # 设置字符串
GET key  # 获取字符串
  • 对哈希表进行操作:
HSET key field value  # 设置哈希表字段值
HGET key field  # 获取哈希表字段值
  • 对列表进行操作:
LPUSH key value1 value2  # 将一个或多个值插入到列表头部
RPUSH key value1 value2  # 将一个或多个值插入到列表尾部
LPOP key  # 移除并返回列表的第一个元素
RPOP key  # 移除并返回列表的最后一个元素
  • 对集合进行操作:
SADD key member1 member2  # 向集合添加一个或多个成员
SMEMBERS key  # 返回集合中的所有成员
  • 对有序集合进行操作:
ZADD key score1 member1 score2 member2  # 向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZRANGE key start stop  # 通过索引区间返回有序集合成指定区间内的成员

9.事务操作

Redis 支持事务操作,可以将多个命令打包在一个事务中,然后一次性执行。可以使用 MULTI 命令开始一个事务,使用 EXEC 命令执行事务,例如:

MULTI
SET key1 value1
SET key2 value2
EXEC

官方文档:Documentation | Redis

相关文章:

快速掌握Redis基础知识及使用技巧

Redis 是一个高性能、基于内存的键值数据库,其主要特点是支持多种数据结构和高并发读写操作。在本文中,我们将介绍 Redis 的基本概念和使用方法,以帮助读者快速入门 Redis。 Redis 的基本概念 Redis 是一种基于内存的高性能 key-value 存储系…...

C++控制台打飞机小游戏

我终于决定还是把这个放出来。 视频在这:https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg.html 具体信息主界面上都有写。 按空格暂停,建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss(上面视频2分47秒)。 挺好…...

Pinna的使用以及pinna的持续化存储(两种方法)

一、简介 pinia是 vue3 新的状态管理工具,简单来说相当于之前 vuex,它去掉了 Mutations 但是也是支持 vue2 的,需要的朋友可以参考下 二、使用方法 1.安装 npm install pinia -S 2..引入 import { createPinia,PiniaPluginContext } from p…...

开发中造成空指针的常见用法,如何避免

1. 前言 《手册》的第 7 页和 25 页有两段关于空指针的描述: 【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。 【推荐】防止 NPE,是程序员的基本修养,注意 NPE 产生的场景: 返回类型为…...

MySQL事务和索引

目录 事务的概念 事务的四大特性(ACID) 原子性 隔离性 持久性 一致性 什么是脏读、幻读和不可重复读? 脏读 幻读 不可重复读 事务的隔离级别 读未提交 读已提交 可重复读 串行化 索引 索引优点 索引缺点 索引分类 索引设…...

Kali工具集简介

Kali Linux提供了数种经过定制的专门为渗透测试设计的工具。工具都会按下图中下拉选单所示的方式按组分类聚合。了解工具是做渗透测试第一个认知。 口Information Gathering(信息收集) 这些都是侦察工具,用来收集目标网络和设备的数据。在这类工具中,从找出设备的工具到查看使…...

离散数学 | 图论 | 欧拉图 | 哈密顿图 | 割点 | 桥(欧拉图和哈密顿图有没有割点和桥?)

本文主要解决以下几个问题: 1.欧拉图能不能有割点,能不能有桥? 2.哈密顿图能不能有割点,能不能有桥? 首先我们要明白几个定义 割点的定义就是在一个图G中,它本来是连通的,去掉一个点v以后这个…...

Android生命周期:理解与应用

摘要:Android生命周期是开发Android应用程序时至关重要的概念。本文将介绍Android生命周期的概念、生命周期方法的执行顺序以及如何在应用程序中正确地管理生命周期。我们还将讨论生命周期对于应用程序的重要性,并提供一些实际应用中的最佳实践和注意事项…...

00后真的是内卷王中王,真的想离职了....

都说00后躺平了,但是有一说一,该卷的还是卷。这不,前段时间我们公司来了个00年的,工作没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。…...

linux Fd以及重定向讲解

感谢你的阅读,是对我最大的鼓励!!!! 目录 fd理解 文件操作重定向 让我们回顾C语言文件操作 首选我们要知道2个知识点: 额外知识点 如何理解一切皆文件呢? 当父进程fork创建子进程是否创建…...

Moonbeam近日提案公投一览

正在跟进Moonbeam治理的小伙伴,一起来快速浏览一下近期生态中正在发生的事情吧!其中包含多个去中心化应用的Grant加速计划提案、HRMP开拓提案以及优化质押相关平台的内容。许多提案都与网络的运作息息相关,一起了解和参与Moonbeam的发展吧&am…...

凝聚青年力量,打造数字化人才队伍

当代青年人勇于探索、敢于创新、勤于变革,积极承担社会责任。这与ABeam倡导的「Build Beyond As One.™」的品牌理念不谋而合。ABeam的青年员工是未来社会的中坚力量,也正用他们的青春能量助力ABeam在中国的发展。 01 新兴青年力量 对ABeam而言&#…...

蓝牙资讯|智能家居标准Matter 1.1 发布,智能家居产品兼容更丰富

据“CSA 连接标准联盟”官方微信号,Matter 1.1 版本已发布,“1.1 版本带来的更新使设备制造商和开发者上手更容易、产品获取认证更方便,也让产品能更快地交付给用户。该版本还为电池供电设备提供了更大支持,而这类设备涉及多种类型…...

Cube Map 系列之:手把手教你 实现天空盒(Sky Box)

什么是天空盒 An skybox is a box with textures on it to look like the sky in all directions or rather to look like what is very far away including the horizon.天空盒是一个使用纹理贴图构建的盒子,人在其中朝任何一个方向看去,其纹理彷佛天空…...

腾讯VS百度:在AI上下大赌注

来源:猛兽财经 作者:猛兽财经 腾讯控股(00700)最近已经把基础模型和生成式人工智能应用方面的行业突破视为其业务的新增长机会了,并且正在大力投资人工智能,从而增强其现有产品的竞争力和拓展新的机会,比如腾讯已经把…...

字节原来这么容易进,是面试官放水,还是公司实在是太缺人?

本人211非科班,之前在字节和腾讯实习过,这次其实没抱着什么特别大的希望投递,没想到字节可以再给我一次机会,还是挺开心的。 本来以为有个机会就不错啦!没想到能成功上岸,在这里要特别感谢帮我内推的同学&…...

生死疲劳|因为此书莫言获得诺贝尔奖

📚书名:《生死疲劳》 ✏️作者:莫言 历经六世的生死轮回, 三代人无尽的生死疲劳; 触碰极致的痛苦与快乐, 感受不灭的热情与希望。 🔥虽然本书长达39万字,但阅读过程却是无比的酣畅…...

Linux系统编程总结

day2 vim的三种工作模式 命令模式 vi hello.c zz 保存退出 2.编辑模式 i a o s (有大写)可以写东西 3.末行模式: 文本和末行模式不能直接切换 要切换回命令模式 再到末行模式,w:保存 q:退出 按两次esc回到命令模式 vim的基本…...

javascript基础二:Javscript字符串的常用方法有哪些?

在日常开发中,我们对字符串也是操作蛮多,这里我们来整理下字符串的一下最常用的方法 一、操作方法 字符串常用的操作方法归纳为增、删、改、查 增 这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作 除了…...

面了个 Java 实习生,小伙很优秀!

大家好,我是鱼皮,前几天给自己的公司面试了一位 Java 暑期实习生,候选人目前是大三。 整个过程我都录屏了,并且在征得候选人的同意后,把面试过程分享出来。一方面是希望对其他在学编程找工作的小伙伴有一些启发和参考…...

龙虎榜——20250610

上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

【2025年】解决Burpsuite抓不到https包的问题

环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...