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

Redis相关知识

  1. yum安装redis
    使用以下命令:直接将redis安装到Linux服务器(Xshell)中
    yum -y install redis
  2. 启动redis

    使用以下命令,以后台运行方式启动redis

    redis-server /etc/redis.conf &
  3. 操作redis

    使用以下命令启动redis客户端

    redis-cli

    具体可操作如下:

    redis-cli:打开客户端

    set testname zhangsan:存放一个key

    get testname:读取一个key

  4. 设置远程连接

    a.将redis配置文件下载到本地;redis配置文件是linux下的/etc/redis.conf

    b.将redis.conf中的“bin 127.0.0.1”注释掉

    c.将redis.conf中的“protected-mode yes"改为:“protected-mode no"

    d.将修饰后的redis.conf上传至linux下 的/etc目录

    e.使用命令”redis-cli shutdown“先关闭redis服务;在使用”redis-server /etc/redis.conf &“开启redis服务

    f.云服务防火墙或安全策略里面开放redis端口6379

redis有五大基础数据类型:

String字符串类型(使用较多)
Hash字典类型
List列表类型
Set集合类型
Zset有序集合类型

1.String:字符串类型(使用较多)

简单动态字符串,它是从键值对key-value的形式存储的,根据key来存储和获取value值,它的使用相对来说比较简单,但是在实际项目中应用非常广泛:

使用如下:

set k1 v1:添加数据

get k1:查询数据

strlen k1:查询字符串的长度

可以使用ex参数来设置字符串的过期时间

set k1 v1 ex 1000 :设置1000s后过期(删除)

字符串的常见使用场景:

  1. 存放用户登录信息
  2. 存放文章详情和列表信息
  3. 存放和累计网页的统计信息
  4. …………………………

2.Hash:字典类型

字典类型又被称为散列类型或者是哈希表类型,它是将一个键值(key)和一个特殊的“哈希表”关联起来,这个“哈希表”包含两列数据:字段和值,他就相当于Java中的Map<String , Map<String , String>>结构。

假如我们使用字典类型来存储一篇文章的详情信息,存储结构如下:

同理,我们也可以使用字典类型来存储用户信息,并且字典类型来存储此类信息就无需手动序列化和反序列化数据了,所以使用起来更加的方便和高校。

字典类型的使用如下:

hset myhash key1 value1:添加数据

hset myhash key1:查询数据

字典类型的查询数据只能一个一个的查询,不能一次全部查询完!!

通常情况下,字典类类型会使用数组的方式来存储相关的数据,但发生哈希冲突时,才会使用链表的结构来存储数据。

添加多个数据:hmset myhset age "16" sex "男"

查询:hget myhset age

           hget myhset sex

3.List:列表类型

列表类型是一个使用链表结构存储的有序结构,它的元素插入会按照先后顺序存储到链表结构中,因此,它的元素操作(插入删除实时间复杂度为O(1)),所以相对来说速度还是比较块的,但它的查询时间复杂度为O(n),因此查询可能会比较慢。

列表类型使用如下:

lpush list 1 2 3:添加数据

lpop list :获取并删除列表的第一个元素

列表的典型使用场景可以有以下两个:

  1. 消息队列:列表类型可以使用rpush实现先进先出的功能,同时又可以使用lpop轻松的弹出(查询并删除)第一个元素,所以列表类型可以用来实现消息队列。
  2. 文查列表:对于博客站点来说,用户和文字都越来越多时,为了加快程序的响应速度,我们可以把用户的文字存入到list中,因为List是有序的结构,所以这样又可以完美的实现分页功能,从而加速了程序的相应速度。

4.Set:集合类型

Set:集合类型是一个无序并唯一的键值集合

集合类型使用场景如下:

sadd myset v1 v2 v3 :添加数据

smembers myset :查询集合中的所有数据

集合类型的经典使用场景如下:

  1. 微博关注我的人和我关注的人都适合用集合存储,可以保证人员不会重复
  2. 中奖人信息也适合用集合类型存储,这样可以保证一个人不会重复中奖

集合类型(Set)和列表类型(List)的区别如下:

  1. 列表可以存储重复元素,集合只能存储非重复元素
  2. 列表是按照元素的先后顺序存储元素的,而集合是无序方式存储元素的

5.Zset:有序集合类型

有序集合类型相比于集合类型多了一个排序属性score(分值),对于有序集合Zset来说,每个存储元素相当于两个值组成的,一个是有序结合的元素值,一个属排序值,有序集合的存储元素值也是不能重复的,但分值是可以重复的。

当我们把学生的成绩存储在有序集合中,它的存储结构如下所示:

有序集合类型的使用如下:

zadd zset1 3 golong 4 sql 1 redis:添加数据

zrange zset 0 -1 :查询所有数据

有序集合的经典使用场景如下:

  1. 学生成绩排名
  2. 粉丝列表,根据关注的先后时间排序

Spring Boot集成Redis的详细教程:

首先,我们需要创建一个Spring Boot项目。可以使用IDEA或者Eclipse等工具创建,也可以直接在命令行中使用Spring Initializr来创建。这里我们以IDEA为例,步骤如下:

  1. 打开IntelliJ IDEA,点击"Create New Project"。
  2. 选择"Spring Initializr",点击"Next"。
  3. 填写项目的基本信息,如Group、Artifact、Name等,点击"Next"。
  4. 选择需要的依赖,这里我们需要添加"Web"和"Redis"的依赖,点击"Next"。
  5. 确认项目的设置,点击"Finish",等待项目创建完成。

三、添加Redis依赖

在项目的pom.xml文件中,添加Spring Boot对Redis的支持。代码如下:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

四、配置Redis

在application.properties文件中,配置Redis的相关信息。代码如下:

spring.redis.host=localhost
spring.redis.port=6379

五、创建Redis配置类

在项目中创建一个配置类,用于配置RedisTemplate。代码如下:

@Configuration
public class RedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(factory);return template;}
}

六、使用RedisTemplate操作Redis

在需要操作Redis的地方,注入RedisTemplate,然后使用其提供的方法进行操作。代码如下:

@Service
public class UserService {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;// ...其他方法...
}

七、测试Redis操作

为了测试Redis的操作,我们可以在UserService中添加一个方法,用于向Redis中添加和获取用户信息。代码如下:

@Service
public class UserService {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;// ...其他方法...public void addUser(String key, User user) {redisTemplate.opsForValue().set(key, user);}public User getUser(String key) {return (User) redisTemplate.opsForValue().get(key);}
}

八、启动Spring Boot应用并测试Redis操作

启动Spring Boot应用后,我们可以使用Postman或者浏览器等工具,调用UserService的addUser和getUser方法,测试Redis的操作。如果一切正常,我们应该可以看到用户信息被正确地添加到Redis中,并且可以通过key获取到用户信息。

至此,我们已经成功地在Spring Boot项目中集成了Redis,并且可以正常使用RedisTemplate进行操作。在实际开发中,我们还可以使用Spring Data Redis提供的Repository接口,更方便地进行CRUD操作。同时,我们还可以使用Redis的发布/订阅功能,实现消息的广播和接收。

相关文章:

Redis相关知识

yum安装redis 使用以下命令&#xff1a;直接将redis安装到Linux服务器&#xff08;Xshell&#xff09;中 yum -y install redis 启动redis 使用以下命令&#xff0c;以后台运行方式启动redis redis-server /etc/redis.conf & 操作redis 使用以下命令启动redis客户端 redis-…...

数据管理系统-week10-自由访问控制

文章目录 前言一、用户管理用户管理语句介绍二、数据库管理三、特权(重点考点)Administrative (global) privileges数据库特权表权限列权限四、角色参考文献前言 这节课主要讲了用户管理数据库的具体语句,数据库特权当中的全局特权,数据库特权,表特权与列特权的使用与注意…...

Python遥感开发之批量拼接

Python遥感开发之批量拼接 1 遥感图像无交错的批量拼接2 遥感图像有交错的批量拼接 前言&#xff1a;主要借助python实现遥感影像的批量拼接&#xff0c;遥感影像的批量拼接主要分为两种情况&#xff0c;一种是遥感图像无交错&#xff0c;另一种情况是遥感图像相互有交错。具体…...

【bat】批处理脚本大全

目录 1.概述 2.变量 3.运算符 3.2.重定向运算符 3.3.多命名运算符 3.4.管道运算符 4.命令 4.1.基本命令 4.2.参数传递 4.3.查看脚本内容 4.4.注释 4.5.日期和时间 4.6.启动脚本 4.7.调用其他bat 4.8.任务管理 4.8.1.任务列表查看 4.8.2.任务终止 4.9.文件夹 …...

java设计模式学习之【单例模式】

文章目录 引言单例模式简介定义与用途实现方式&#xff1a;饿汉式懒汉式 UML 使用场景优势与劣势单例模式在spring中的应用饿汉式实现懒汉式实现数据库连接示例代码地址 引言 单例模式是一种常用的设计模式&#xff0c;用于确保在一个程序中一个类只有一个实例&#xff0c;并且…...

UWB高精度定位系统项目源码

在现代社会中&#xff0c;精准定位技术对于各行各业都至关重要。为了满足对高精度定位的需求&#xff0c;超宽带&#xff08;Ultra-Wideband, UWB&#xff09;技术应运而生。UWB高精度定位系统以其出色的定位精度和多样化的应用领域而备受关注。本文将深入探讨UWB高精度定位系统…...

WPF Live Charts2 自学笔记

文章目录 前言实现效果微软平台的历史问题 WPF 项目搭建Nuget添加额外框架添加项目初始化livecharts配置其它LiveCharts2 案例简单案例Demo示例ViewViewModel GPU渲染 Github地址仓库 前言 LiveChart 是C# 上面很受欢迎的统计图 UI控件。最近在学WPFhalcon开发&#xff0c;想想…...

大小堆的实现(C语言)

目录 前言 一种完全二叉树&#xff1a;堆 堆的概念 堆的性质 建堆的时间复杂度 建堆的空间复杂度&#xff1a; 小堆的实现 必要补充 堆的初始化 堆的销毁 向上调整算法 堆的插入 向下调整算法 堆的删除 获取堆顶元素 获取堆中元素个数 堆的判空 最终代码 He…...

Linux系统之centos7编译安装Python 3.8

前言 CentOS (Community Enterprise Operating System) 是一种基于 Red Hat Enterprise Linux (RHEL) 进行源代码再编译并免费提供给用户的 Linux 操作系统。 CentOS 7 采用了最新的技术和软件包&#xff0c;并提供了强大的功能和稳定性。它适用于各种服务器和工作站应用场景&a…...

Lambda表达式与方法引用

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 引子 先来看一个案例 …...

二维数组处理(一)

输入整型二维数组a&#xff08;5行5列&#xff09;&#xff0c;完成如下要求&#xff1a; 输出二维数组a。 将a的第2行和第4行元素对调后&#xff0c;形成新的二维数组a并按行输出&#xff0c;每个元素之间隔一个空格。(行号从0开始计算)。 用对角线&#xff08;指二维数组左…...

基于JNI实现调用C++ SDK

基于JNI实现调用C SDK 背景分析解决实践 背景 上篇文章总结了几种Java项目调用C/C SDK项目方法&#xff0c;在逐一实践、踩坑后&#xff0c;最终还是敲定采用 JNI 方式进行实现。在文章开始的过程&#xff0c;会先大概讲讲笔者遇到的情况&#xff0c;因为封装方式需要根据实际…...

计算机组成原理笔记——存储器(静态RAM和动态RAM的区别,动态RAM的刷新, ROM……)

■ 随机存取存储器 ■ 1.随机存取存储器&#xff1a;按存储信息的原理不同分为&#xff1a;静态RAM和动态RAM 2.静态RAM&#xff08;SRAM&#xff09;&#xff1a;用触发器工作原理存储信息&#xff0c;但电源掉电时&#xff0c;存储信息会丢失具有易失性。 3.存储器的基本单元…...

企业计算机服务器locked1勒索病毒数据恢复,locked1勒索病毒解密流程

随着计算机技术的不断发展&#xff0c;越来越多的企业走向数字化办公时代&#xff0c;计算机技术为企业的生产运营提供了有利条件&#xff0c;但也为企业带来了网络安全威胁。在本月&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的速达办公软件遭到了lo…...

Session 与 JWT 的对决:谁是身份验证的王者? (下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

论文笔记:Confidential Assets

Confidential Assets 描述了一种称为“保密交易”的方案&#xff0c;该方案模糊了所有UTXO的金额&#xff0c;同时保持了不创建或销毁硬币的公共可验证性。进一步将此方案扩展到“保密资产”&#xff0c;一种单一的基于区块链的分类帐可以跟踪多种资产类型的方案。将保密交易扩…...

Docker下搭建MySQL主从复制

目录 主从复制简介 主从复制搭建 主从复制简介 主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff1b;主数 据库一般是准实时的业务数据库。 主从复制的作用 做数据的热备。作为后备数据库&#xff0c;主数据库服务器故…...

VBA数据库解决方案第七讲:如何利用Recordset对象打开数据库的数据记录集

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...

内部培训平台的系统 PlayEdu搭建私有化内部培训平台

PlayEdu是由白书科技团队多年经营的线上教育系统&#xff0c;专为企业提供的全新企业培训方案 我们的目标是为更多的企业机构搭建私有化内部培训平台&#xff0c;以满足不断增长的培训需求 通过PlayEdu&#xff0c;企业可以有效地组织和管理培训资源&#xff0c;提供高质量的…...

Elasticsearch 相似度评分模型介绍

前言 Elasticsearch 是基于 Lucene 的世界范围内最流行的全文检索框架&#xff0c;其文档相似度算法包含 TF/IDF 和 BM25&#xff0c;从 ES 5.0开始 BM25 算法已经成为 ES 默认的相似度评分模块。 TF-IDF 与 BM25 的区别 TF-IDF 和 BM25 都是计算文本相似性的常用算法。TF-ID…...

北斗高精度数据解算:破解城市峡谷/长基线/无网区难题,从毫米级定位到自动化交付——(GAMIT/GLOBK底层核心解算技术方法)

北斗三号全面应用已至深水区&#xff0c;一线甲级测绘单位与科研院所正面临三重实战拷问&#xff1a;城市峡谷多路径干扰下如何实现毫米级收敛&#xff1f;西部高海拔无网区如何依托离线精密轨道完成长基线高精度解算&#xff1f;国家重大工程"零误差"标准下&#xf…...

别再死记硬背了!用Python+OpenCV动手复现计算机视觉核心算法(边缘检测/图像分割实战)

用PythonOpenCV实战复现计算机视觉核心算法&#xff1a;从理论到代码的跨越 计算机视觉作为人工智能领域最炙手可热的方向之一&#xff0c;其核心算法构成了这门学科的骨架。但很多学习者在掌握理论知识后&#xff0c;面对实际项目仍感到无从下手——公式记住了&#xff0c;原理…...

ofa_image-caption_coco_distilled_en快速部署教程:7860端口WebUI调用全流程详解

ofa_image-caption_coco_distilled_en快速部署教程&#xff1a;7860端口WebUI调用全流程详解 本文介绍如何快速部署和使用ofa_image-caption_coco_distilled_en模型&#xff0c;这是一个专门用于为图片生成英文描述的AI系统。通过简单的Web界面&#xff0c;任何人都能轻松上传图…...

Verilog仿真踩坑记:为什么你的测试用例‘通过’了,但电路其实是错的?(附X态检测代码)

Verilog仿真中的X态陷阱&#xff1a;如何避免“虚假通过”的致命错误 数字电路仿真中&#xff0c;最危险的场景莫过于测试结果显示“Passed”&#xff0c;但实际芯片却存在严重功能缺陷。这种“虚假通过”现象往往源于Verilog中X态&#xff08;未知状态&#xff09;的隐蔽特性…...

腰椎滑脱和腰间盘突出,日常护理大不同,做错反而加重病情

很多腰椎病患者&#xff0c;在明确诊断后&#xff0c;医生会叮嘱“注意日常护理”&#xff0c;但很多人不知道&#xff0c;腰椎滑脱和腰间盘突出的护理重点完全不同——如果用护理腰间盘突出的方法&#xff0c;去护理腰椎滑脱&#xff0c;不仅没有效果&#xff0c;还可能加重椎…...

如何用anyRTC-RTMP-OpenSource打造个性化直播数据源:自定义视频采集完整指南

如何用anyRTC-RTMP-OpenSource打造个性化直播数据源&#xff1a;自定义视频采集完整指南 【免费下载链接】anyRTC-RTMP-OpenSource RTMP 推流器&#xff0c;RTMP(HLS)秒开播放器&#xff0c;直播点播&#xff0c;跨平台&#xff08;Win,IOS,Android&#xff09;开源代码 项目…...

Obsidian图像转换:提升笔记效率的格式优化解决方案

Obsidian图像转换&#xff1a;提升笔记效率的格式优化解决方案 【免费下载链接】obsidian-image-converter ⚡️ Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align images directly in Obsidian. Drag-resize, rename with variables, batch pro…...

JETSON平台SDKManager一站式部署指南:从刷机到外置存储系统迁移

1. 开箱即用&#xff1a;JETSON开发板基础准备 刚拿到JETSON开发板时&#xff0c;很多开发者会对着这块巴掌大的硬件发懵。以我经手过的几十块JETSON TX2 NX为例&#xff0c;正确的开箱姿势应该是先检查配件完整性。除了开发板本体&#xff0c;你还需要准备&#xff1a; 5V/4…...

在模具设计领域,结构受压变形分析就像给钢铁骨架做“压力测试“。COMSOL的稳态研究模块能快速完成这类强度验证,但实际操作中有几个魔鬼细节需要特别注意

用comsol软件进行结构的受压变形分析&#xff0c;计算结构受压时应力分布及应变情况&#xff0c;预测模具的强度是否符合要求。 模型采用装配体&#xff0c;可以使用稳态研究&#xff0c;加快计算速度&#xff0c;在各零件接触的面设置接触对&#xff0c;对顶针施加位移&#x…...

实战应用:基于快马平台开发具备origin高级分析功能的在线工具

今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——开发一个具备Origin高级分析功能的在线工具。作为一个经常需要处理实验数据的科研狗&#xff0c;Origin这类软件的分析功能确实强大&#xff0c;但每次都要安装本地软件实在麻烦。于是就想试试能不能做个在线版&am…...