当前位置: 首页 > 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 暑期实习生,候选人目前是大三。 整个过程我都录屏了,并且在征得候选人的同意后,把面试过程分享出来。一方面是希望对其他在学编程找工作的小伙伴有一些启发和参考…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...