Redis的介绍与使用

文章目录

  • Redis简介
  • 安装Redis
  • Redis常用命令
    • 全局命令
    • String类型数据
    • Hash哈希类型数据
    • List列表类型数据
    • Set集合类型数据
    • SortedSet有序集合类型数据
  • 一些选择题
  • 一些选择题

Redis简介

  • Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构: 字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。

NoSql数据库:not only sql,除关系型数据库之外的所有非关系型数据库

  • Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。 同时,Redis还可以将内存中的数据以快照或日志的形式保存到硬盘上,以保证数据的安全性。

  • 快照形式:即RDB形式,直接将内存中数据原原本本传硬盘上

    • 优点:数据体积小,恢复数据到内存很快

    • 缺点:将内存数据一下子存到硬盘上很耗时,存储时可能造成阻塞,对其他业务有影响

    • 不适合实时去做,适合几个小时做一次数据备份

  • 日志形式:AOF形式,每执行一个redis命令,就以日志的形式存储一次

    • 优点:实时、快速

    • 缺点:以追加的形式存储,体积大占空间。恢复速度慢(恢复时会将硬盘中命令全部跑一次)

  • Redis典型的应用场景包括:

    • 缓存:频繁访问的数据,从内存上取比硬盘上快

    • 排行榜:如热门帖子等,访问是很频繁的,进行缓存效率高

    • 计数器:每访问一次帖子浏览量加一,数据存硬盘效率太低

    • 社交网络:点赞关注等。放内存更快访问;且关系型数据库里不方便存(就一个数据还要建一张表),以键值对形式存到内存中

    • 消息队列:不是专门做消息队列的工具,项目对消息队列要求不是特别高时,可以用redis

    • … …

安装Redis

https://redis.io/ :下载Linux系统的redis安装包,查询redis的数据命令等

https://github.com/microsoftarchive/redis :微软做的windows系统的redis安装包

.msi 安装程序 . zip 压缩包

安装时,仅需改存储路径

将redis的安装路径设置为系统变量

Redis常用命令

官网:https://redis.io/

全局命令

cmd中启动redis: redis-cli

image-20240220155834716

redis内置16个库,无名字,用0-15的数字索引进行区分

切换库: select 库索引

**刷新当前库:**flushdb 刷新后清除库中数据

image-20240220160318638

**查询当前库里的key:**keys * 所有key

​ keys test* 以test开头的key

image-20240220171008973

**查看key的值类型:**type key

image-20240220171126217

**查看key是否存在(1真0假):**exists key [key …]

**删除key:**del key [key …]

image-20240220171328921

**设置key过期时间:**expire key seconds

seconds为过期秒数,过了这个秒数,会自动删除key

image-20240220171602678

String类型数据

**key命名规则:**多个单词之间用 “ : ” 分隔,如 test:count

添加数据: set key名 value值

**获取数据:**get key名 value值

image-20240220160631638

**数据自增1:**incr key

数据自减1: decr key

image-20240220160803157

Hash哈希类型数据

redis中数据以key-value形式存储,因此hash类型数据,key名相当于hash表名,fields相当于表中键值对的键名

**存数据:**hset key名 fields value

**取数据:**gset key名 fields

image-20240220162033913

List列表类型数据

很灵活,若看作横向容器,支持从左边()往里装/取数据,也支持从右边往里装/取数据。

  • 左进右出:栈
  • 左进左出:队列

命令中,l 代表left,r 代表right

从左边存数据:lpush key值 value [value…]

越先放入索引越大,越后放入索引越小

如按101,102,103的顺序朝list中放数据,则list中数据从左到右为 103,102,101,索引从左到右为0,1,2

**查看list长度:**llen key

**查看list中指定索引下的值:**lindex key index

image-20240220163408214

**查看某个索引范围内的值:**lrange key start stop

​ 0表示第一个数据,-1表示最后一个数据

image-20240220164342458

**从右边取数据:**rpop key

image-20240220164705602

Set集合类型数据

列表有序,数据可重复

集合无序,数据不可重复

**存数据:**sadd key member [member…]

s代表set

**查看集合中元素个数:**scard key

从集合中随机的弹出一个元素:spop key [count]

**该命令可用于抽奖:**set中存放不同用户的id,每个id只有一个,每次随机弹出一个id作为中奖用户

image-20240220165329220

**查看集合中元素:**smember key

image-20240220165646919

SortedSet有序集合类型数据

给每一个存的值,附加一个分数,按分数排序

**存数据:**zadd key score member [score member …]

**查看集合中元素个数:**zcard key

**查询元素对应的分数:**zscore key member

**查询元素排名(默认由小到大):**zrank key member

**取某个排名范围内的数据:**zrange key start stop

image-20240220170637353

一些选择题

4.2【瑞客论 坛 www.ruike1.com】

B

4.3【瑞客论 坛 www.ruike1.com】

C

4.4【瑞客论 坛 www.ruike1.com】

A
rt stop

[外链图片转存中…(img-0CQye3dU-1709434100818)]

一些选择题

[外链图片转存中…(img-SqV0qa5c-1709434100819)]

B

[外链图片转存中…(img-iWVOX7MR-1709434100819)]

C

[外链图片转存中…(img-rTkfsOqd-1709434100820)]

A

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

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

相关文章

代码随想录算法训练营第26天—回溯算法06 | ● *332.重新安排行程 ● *51. N皇后 ● *37. 解数独 ● 总结

*332.重新安排行程 https://programmercarl.com/0332.%E9%87%8D%E6%96%B0%E5%AE%89%E6%8E%92%E8%A1%8C%E7%A8%8B.html 考点 图论里的深度优先搜索(本题使用回溯来解决)这是一道hard题,一刷先放过去,二刷有精力再做 我的思路 无思…

【AI Agent系列】【MetaGPT多智能体学习】4. 基于MetaGPT的Team组件开发你的第一个智能体团队

本系列文章跟随《MetaGPT多智能体课程》(https://github.com/datawhalechina/hugging-multi-agent),深入理解并实践多智能体系统的开发。 本文为该课程的第四章(多智能体开发)的第二篇笔记。主要是对MetaGPT中Team组件…

二叉搜索树题目:将有序数组转换为二叉搜索树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法证明代码复杂度分析 题目 标题和出处 标题:将有序数组转换为二叉搜索树 出处:108. 将有序数组转换为二叉搜索树 难度 4 级 题目描述 要求 给定整数数组 nums \texttt{nums}…

力扣 第 125 场双周赛 解题报告 | 珂学家 | 树形DP + 组合数学

前言 整体评价 T4感觉有简单的方法&#xff0c;无奈树形DP一条路上走到黑了&#xff0c;这场还是有难度的。 T1. 超过阈值的最少操作数 I 思路: 模拟 class Solution {public int minOperations(int[] nums, int k) {return (int)Arrays.stream(nums).filter(x -> x <…

springboot230基于Spring Boot在线远程考试系统的设计与实现

在线远程考试系统设计与实现 摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到…

协议和序列化反序列化

“协议”和序列化反序列化 “协议”的概念&#xff1a; “协议”本身是一种约定俗成的东西&#xff0c;由通讯双方必须共同遵从的一组约定&#xff0c;因此我们一定要将这种约定用计算机语言表达出来&#xff0c;此时双方计算机才能识别约定的相关内容 我们把这个规矩叫做“…

今晚打老虎:用katalon解决接口/自动化测试拦路虎--参数化

不管是做接口测试还是做自动化测试&#xff0c;参数化肯定是一个绕不过去的坎。 因为我们要考虑到多个接口都使用相同参数的问题。所以&#xff0c;本文将讲述一下katalon是如何进行参数化的。 全局变量 右侧菜单栏中打开profile&#xff0c;点击default&#xff0c;打开之后…

【LeetCode】升级打怪之路 Day 11:栈的应用、单调栈

今日题目&#xff1a; Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1&#xff1a;栈 - “先进后出”的应用LC 155. 最…

IO(Linux)

文件系统 前言1. 回顾关于C文件部分函数2. 一些文件知识的共识3. 相对路径4. fwrite中的\0 一、文件描述符fd1. 概念2. 系统调用① open 和 close② write③ read 和 lseek 3. 缺省打开的fd 二、重定向1. 原理2. 系统调用dup23. stdout和stderr的区别4. 进程替换和原来进程文件…

Linux笔记-3

软件安装 概述 在Linux中&#xff0c;软件安装分为3种方式&#xff1a;绿色安装(压缩包解压之后就能直接使用)&#xff0c;rpm安装(类似于Windows中的exe或者msi文件)&#xff0c;yum安装 RPM(Red Hat Package Manager)&#xff1a;红帽提供的软件包的管理工具。可以通过rpm命…

Github项目推荐-LightMirrors

项目地址 https://github.com/NoCLin/LightMirrors 项目简述 “LightMirrors是一个开源的缓存镜像站服务&#xff0c;用于加速软件包下载和镜像拉取。目前支持DockerHub、PyPI、PyTorch、NPM等镜像缓存服务。 当前项目仍处于早期阶段。”–来自项目说明。 也就是说&#xff…

vue中使用prettier

前言&#xff1a;prettier是一款有态度的代码格式化工具&#xff0c;它可以集成在IDE中&#xff0c;如VS Code、Web Storm等&#xff0c;也可以安装到我们开发的项目里面。本文主要讲解在Vue中集成prettier的过程&#xff0c;可以便于代码检测和格式化。 prettier官网 从官网的…

ardupilot 及PX4姿态误差计算算法对比分析

目录 文章目录 目录摘要1.APM姿态误差计算算法2.PX4姿态误差计算算法3.结论摘要 本节主要记录ardupilot 及PX4姿态误差计算算法差异对比过程,欢迎批评指正。 备注: 1.创作不易,有问题急时反馈 2.需要理解四元物理含义、叉乘及点乘含义、方向余弦矩阵含义、四元数乘法物理含…

vue+element ui上传图片到七牛云服务器

本来打算做一个全部都是前端完成的资源上传到七牛云的demo&#xff0c;但是需要获取token&#xff0c;经历了九九八十一难&#xff0c;最终还是选择放弃&#xff0c;token从后端获取&#xff08;springboot&#xff09;。如果你们有前端直接能解决的麻烦记得私我哦&#xff01;…

【最新】如何将idea上的项目推送到gitee

1.打开Gitee&#xff0c;在首页&#xff0c;点击“”&#xff0c;创建一个仓库 2.填写仓库基本信息 3.下拉&#xff0c;点击“创建”&#xff0c;出现下方页面&#xff0c;证明仓库创建成功。 4.打开idea&#xff0c;下载gitee的插件&#xff08;此处默认已经下载git&#xff0…

布隆过滤器实战

一、背景 本篇文章以解决实际需求的问题的角度进行切入&#xff0c;探讨了如果使用布隆过滤器快速丢弃无效请求&#xff0c;降低了系统的负载以及不必要的流量。 我们都知道布隆过滤器是以占用内存小&#xff0c;同时也能够实现快速的过滤从而满足我们的需求&#xff0c;本篇…

termux上安装Python

Termux是一款Android平台下的终端模拟器和Linux环境应用&#xff0c;它允许用户在移动设备上访问Linux命令行界面&#xff0c;以便使用命令行工具、脚本、开发环境等功能。 要在Termux上安装Python&#xff0c;请按照以下步骤进行操作&#xff1a; 一&#xff0c;下载termux …

温湿度传感器SHT21

SHT21是一款基于IIC的温湿度传感器&#xff0c;它的引脚及定义如下&#xff1a; 标准的IIC器件&#xff0c;没有其他多余的引脚&#xff0c;应用框图如下&#xff1a; 温度的测量范围是-40到125℃&#xff0c;湿度测量范围0-100%RH&#xff0c;具体参数及采样精度见下图&#x…

如何限制一个账号只在一处登陆

大家好&#xff0c;我是广漂程序员DevinRock&#xff01; 1. 需求分析 前阵子&#xff0c;和问答群里一个前端朋友&#xff0c;随便唠了唠。期间他问了我一个问题&#xff0c;让我印象深刻。 他问的是&#xff0c;限制同一账号只能在一处设备上登录&#xff0c;是如何实现的…

C语言操作符详解(一)

一、操作符的分类 • 算术操作符&#xff1a; 、- 、* 、/ 、% • 移位操作符:<< >> • 位操作符: & | ^ • 赋值操作符: 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^ • 单⽬操作符&#xff1a; &#xff01;、、--、&、*、、…