Redis-----什么是Redis?

什么是Redis?

redis是一个基于内存的key-value结构数据库。

  • 基于内存存储,读写性能高
  • 适合存储热点数据(热点商品、资讯、新闻)
  • 企业应用广泛

Redis入门

  • redis简介

    redis是一个开源的内存中的数据结构存储系统,数据库、缓存和消息中间件 (非关系型数据库)

    • 关系型数据库(RDBMS)
      • mysql
      • oracle
      • DB2
      • SQLServer
    • 非关系型数据库(NoSql)
      • redis
      • MongoDB
      • memcached
    • redis应用场景
      • 缓存
      • 任务队列
      • 消息队列
      • 分布式锁
  • redis下载与安装

    • window下安装(比较简单)
    • Linux下安装
      1. 将redis安装包上传到Linux
      2. 解压安装包,命令: tar -zxvf redis -C /usr/local
      3. 安装redis的依赖环境gcc ,命令:yum install gcc-c++
      4. 进入/usr/local/redis-4.0.0,进行编译,命令:make
      5. 进入redis的src目录,进行安装,命令:make install
  • redis服务启动与停止

    • Linux中redis服务启动,可以使用redis-server,默认端口号为6379
    • ctrl+c停止redis服务

注意:如果需要进行远程访问,这时我们需要进行redis远程校验密码设置

  1. 进行redis校验密码设置:(操作文件redis.conf)将requiredpass删除注释,后面设置密码
    在这里插入图片描述

  2. 开启redis远程访问服务 (操作文件redis.conf)将bind 127.0.0.1 进行注释,这样就可以远程访问了!!!注意关防火墙,或者开放所需要的端口

在这里插入图片描述

./redis-cli -h localhost -p 6379 -a 123456 本地访问(如果远程访问,将localhost改为ip地址)

访问时报错

(error) NOAUTH Authentication required.

可以输入命令:auth 123456 (密码)

数据类型

  • 介绍

    redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:

    1. 字符串 String
    2. 哈希 hash
    3. 列表 list
    4. 集合 set
    5. 有序集合 sorted set
  • redis五种常用数据类型

    1. string普通字符串,常用 (key:string)
    2. hash 适合存储对象 (key:{(key:value),(key:value),…})
    3. list 按照插入顺序排序,可以有重复元素 (key:[str,str2,…])
    4. set无序集合,没有重复元素
    5. sorted set有序集合,没有重复元素

常用命令

  • 字符串String操作命令

    • set key value 设置指定key的值
    • get key 获取指定key的值
    • setex key seconds value 设置指定key的值,并将key的过期时间设为seconds秒
    • setnx key value 只有在key不存在时设置key的值
  • 哈希hash操作命令

    • redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象,常用命令:

      hset key field value 将哈希表key中的字段field的值设为value

      hget key field 获取存储在哈希表中的指定字段的值

      hdel key field 删除存储在哈希表中的指定字段

      hkeys key 获取哈希表中所有字段

      hvals key 获取哈希表中所有值

      hgetall key 获取在哈希表中指定key的所有字段和值

  • 列表list操作命令

    • redis列表是简单的字符串列表,按照插入顺序排序,常用命令:

      lpush key value1 [value2] 将一个或多个值插入到列表头部

      lrange key start stop 获取列表指定范围内的元素

      rpop key 移除并获取列表最后一个元素

      llen key 获取列表长度

      brpop key1[key2] timeout 移出并获取的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

  • 集合set操作命令

    • redis set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,常用命令:

      sadd key member1 [member2] 向集合添加一个或多个成员

      smembers key 返回集合中的所有成员

      scard key 获取集合的成员数

      sinter key1 [key2] 返回给定所有集合的交集

      sunion key1 [key2] 返回所有给定集合的并集

      sdiff key1 [key2] 返回给定所有集合的差集

      srem key member1 [member2] 移除集合中一个或多个成员

  • 有序集合sorted set操作命令

    • redis sorted set 有序集合是string类型元素的集合,且不允许重复的成员。每个元素都会关联一个double类型的分数(score)。redis正是通过分数来为集合中的成员进行从小到大排序。有序集合的成员是唯一的,但分数却可以重复。

      常用命令:

      zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数

      zrange key start stop [withscores] 通过索引区间返回有序集合中指定区间内的成员

      zincrby key increment member 有序集合中对指定成员的分数加上增量increment

      zrem key member [member …] 移除有序集合中的一个或者多个成员

  • 通用命令

    keys pattern 查找所有符合给定模式(pattern)的key

    exists key 检查给定key是否存在

    type key 返回key所存储的值的类型

    ttl key 返回给定key的所剩生存时间(TTL,time to live),以秒为单位

    del key 该命令用于在key存在是删除key

在java中操作Redis

  • 介绍

    • Redis的java客户端很多,官方推荐的有三种:
      • Jedis
      • Lettuce
      • Redisson

    Spring对Redis客户端进行了整合,提供了spring data redis ,在spring boot项目中还提供了对应的starter,即spring-boot-starter-data-redis

  • Jedis

    Jedis的maven坐标:

    ​ redis.clients

    ​ jedis

    ​ 2.8.0

    使用Jedis操作redis的步骤:

    • 获取连接
    • 执行操作
    • 关闭连接
  • Spring Data Redis

    在springboot项目中,可以使用spring data redis来来简化redis操作,maven坐标:

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

    Spring data redis中提供了一个高度封装的类:RedisTemplate,针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口,具体分裂如下:

    • ValueOperations:简单K-V操作
    • SetOperations:set类型数据操作
    • ZSetOperations:zset类型数据操作
    • HashOperations:针对map类型的数据操作
    • ListOperations:针对list类型的数据操作

    在程序中使用redisTemplate时,程序设置key 和value时默认调用序列化,从而导致值发生改变,这时需要更改key序列化器,而value不需要更改序列化器,因为value在get的时候会进行反序列化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哪个洗脱一体机好用?好用的洗拖一体机推荐

洗地机是一款使用非常方便的清洁工具&#xff0c;通常可以实现吸、拖、洗三个功能&#xff0c;对于各类家庭污渍都有着不错的处理能力&#xff0c;无论是干燥垃圾还是潮湿垃圾一律可以有效清理。不过很多新手朋友在选购洗地机时会因为看不懂参数而频繁踩雷。本文为大家整理了洗…

详解语义分割deeplabv3+模型的工业应用流程

来源&#xff1a;投稿 作者&#xff1a;某一个名字 编辑&#xff1a;学姐 导语 在工业视觉应用中&#xff0c;目标检测算法常用于特征的粗定位&#xff0c;而语义分割则在特征的精定位方面有着突出的表现。使用较多的语义分割模型主要有FCN、deeplab系列、unet等&#xff0c;根…

keil5使用c++编写stm32控制程序

keil5使用c编写stm32控制程序 一、前言二、配置图解三、std::cout串口重定向四、串口中断服务函数五、结尾废话 一、前言 想着搞个新奇的玩意玩一玩来着&#xff0c;想用c编写代码来控制stm32&#xff0c;结果在keil5中&#xff0c;把踩给我踩闷了&#xff0c;这里简单记录一下…

【OCR】CTC loss原理

1 CTC loss出现的背景 在图像文本识别、语言识别的应用中&#xff0c;所面临的一个问题是神经网络输出与ground truth的长度不一致&#xff0c;这样一来&#xff0c;loss就会很难计算&#xff0c;举个例子来讲&#xff0c;如果网络的输出是”-sst-aa-tt-e’, 而其ground truth…

深入剖析:如何优化Android应用的性能和内存管理

深入剖析&#xff1a;如何优化Android应用的性能和内存管理 性能和内存管理的重要性 在今天的移动应用开发中&#xff0c;用户对于应用的性能和体验要求越来越高。一款性能卓越的Android应用能够提供流畅的操作体验、快速的响应速度以及较低的资源消耗&#xff0c;从而提高用户…

SpringBoot 集成webSocket

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

HTML5 Input 类型

文章目录 HTML5 Input 类型Input 类型: colorInput 类型: dateInput 类型: datetimeInput 类型: datetime-localInput 类型: emailInput 类型: monthInput 类型: numberInput 类型: rangeInput 类型: searchInput 类型: telInput 类型: timeInput 类型: urlInput 类型: weekHTM…

CLIMS:弱监督语义分割的跨语言图像匹配

文章目录 CLIMS: Cross Language Image Matching for Weakly Supervised Semantic Segmentation摘要方法语言图像匹配框架 实验结果 CLIMS: Cross Language Image Matching for Weakly Supervised Semantic Segmentation 摘要 存在的问题 CAM(类激活图)通常只激活有区别的对象…

辉煌优配|黄金价格创近两年半新高!2只黄金股一季度预增

黄金板块早盘走强。 4月14日早盘&#xff0c;黄金板块团体走高&#xff0c;次新股四川黄金开盘半小时内拉升至涨停&#xff0c;封单资金到达7279.78万元&#xff0c;中润资源、晓程科技涨幅居前&#xff0c;分别为8.96%、8.48% 消息面上来看&#xff0c;近期全球黄金期货价格节…

HTML中表格标签<table><tr><tb><th>中单元格的合并问题

前情知晓 层级关系如下&#xff1a; <table><tr><td> </td><th> </th></tr></table> <table>...</table> 用于定义一个表格开始和结束 <tr>...</tr> 定义一行标签&#xff0c;一组行标签内可以建立…

Spring Cloud微服务网关Zuul的注解@EnableZuulProxy或@EnableZuulServer做了什么事情

一、Zuul的工作原理 Zuul 1.x的版本是由Servlet以及一系列的Filter组成的&#xff0c;各个组件之间协同合作完成功能&#xff0c;且易于扩展。参看官方的架构图我画了张图&#xff1a; Zuul声明周期&#xff1a; HTTP Request -> DispatcherServlet -> ZuulHandlerMappi…

面了 6 家大厂,并拿下 5 家 offer,进大厂好像也没有那么困难吧....

前言 二月份的时候因为换工作的缘故&#xff0c;陆续参加了华为、阿里巴巴、字节跳动、拼多多、百度、Paypal 的社招面试&#xff0c;除了字节跳动流程较长&#xff0c;我主动结束面试以外&#xff0c;其他的都顺利拿到了 Offer。 最近时间稍微宽裕点了&#xff0c;写个面经&…

2021遥感应用组二等奖:近20年黄河流域植被动态与生态环境效应

作品介绍 1 研究目的 基于MODIS NDVI植被指数、土地利用数据和气象数据集&#xff0c;辅以趋势分析、偏相关分析、马尔科夫转移矩阵变化分析、多元回归分析等方法&#xff0c;全面分析黄河流域2001-2020年植被时空变化特征&#xff0c;并通过构建统计模型方式&#xff0c;定量…

图染色问题的NP完全性证明

文章目录 1.Overview2.CNF 3-sat3. Gadgets3.1 Concolorous Edges3.2 Starter/Variable Gadget3.3 Splitter Gadget3.4 OR Gadget3.5 Clause Gadget 4. To Planar Graph 最近在学 6.890&#xff0c;然后 devans 刚好问了我这个问题&#xff0c;然后尝试编了一个证明。 1.Overv…

独家 | 招商银行:玩转校园招聘新方式 挖掘金融科技新人才

数字经济时代&#xff0c;金融科技人才队伍的引进与培养是招商银行人才体系建设的关键任务。 01.金融科技校招2大核心课题 招商银行数字化转型过程中&#xff0c;线上化、生态化、平台化、智能化、数据化全面加速发展&#xff0c;对人才队伍能力提出新要求。 2大核心课题&am…

Spring Bean的生命周期

Spring Bean 的完整生命周期主要包括以下阶段&#xff1a; 实例化&#xff08;Instantiation&#xff09;&#xff1a;Spring 容器通过调用 Bean 的构造函数来创建 Bean 的实例。这是 Bean 生命周期的第一步。 设置属性值&#xff08;Setting Bean Properties&#xff09;&…

【分布式】熔断、降级傻傻分不清楚-熔断和降级的真实关系

文章目录 前言降级熔断什么是服务熔断 熔断和降级的关系降级方式1、熔断降级&#xff08;不可用&#xff09;2、超时降级3、限流降级 总结 前言 刚开始我以为熔断和降级是一体的&#xff0c;以为他们必须配合使用&#xff1b; 只不过名字不一样而已&#xff0c;但是当我经过思…

如何实现视觉识别形状

1. 功能说明 通过摄像头识别圆形及矩形两种形状。 2. 电子硬件 本实验中采用了以下硬件&#xff1a; 主控板 Basra主控板&#xff08;兼容Arduino Uno&#xff09; 扩展板 Bigfish2.1 电池7.4V锂电池通信2510通信转接板WiFi路由器 其它 摄像头 配置OpenCV的Visual Studio 2015.…

MySQL having关键字详解、与where的区别

1、having关键字概览 1.1、作用 对查询的数据进行筛选 1.2、having关键字产生的原因 使用where对查询的数据进行筛选时&#xff0c;where子句中无法使用聚合函数&#xff0c;所以引出having关键字 1.3、having使用语法 having单独使用&#xff08;不与group by一起使用&a…

(SQL学习随笔3)SQL语法——SELECT语句

导航 基本认识FROM关键字LIMIT与OFFSETORDER BY WHERE条件查询单值比较多条件组合范围筛选空值匹配LIKE通配条件分组 运算符和函数数据变换 分组运算表连接内连接左(右)外连接全外连接 外键约束窗口函数UNION&#xff1a;表上下拼接子查询条件判断PostgreSQLMySQL 基本认识 SE…