Redis-----什么是Redis?

这篇具有很好参考价值的文章主要介绍了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删除注释,后面设置密码
    Redis-----什么是Redis?

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

Redis-----什么是Redis?

./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的时候会进行反序列化。文章来源地址https://www.toymoban.com/news/detail-416274.html

到了这里,关于Redis-----什么是Redis?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Redis】redis为什么快

        ​ 🍎 个人博客: 个人主页 🏆 个人专栏: Redis   ⛳️   功不唐捐,玉汝于成 ​ 目录 前言 正文 结语  我的其他博客 在当今的计算机应用领域,数据存储和高性能访问成为系统设计中至关重要的一环。Redis以其卓越的性能、简洁而强大的设计原则,成为众多开发者和

    2024年01月25日
    浏览(47)
  • 【Redis】为什么要学 Redis

    关于为什么要学 Redis 这个问题,一个字就可以回答,那就是:快! Redis是一个将数据储存到内存中的非关系型数据库,它是以键值对的形式来组织数据的,一般可以用作内存数据库、缓存、消息队列等。 使用 Redis 的主要原因就是因为它的快,但是它的快是相对于 MySQL 等这样

    2024年02月09日
    浏览(44)
  • Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)

    一、Redis是什么 Redis 是一种 基于内存的数据库 ,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于 缓存,消息队列、分布式锁等场景 。         Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、

    2024年02月10日
    浏览(67)
  • 【Redis】Redis是什么、能干什么、主要功能和工作原理的详细讲解

    🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:C++STL,感兴趣的小伙伴可以看看。 🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​ ⛱️万物从心起,心动则万物动🏄

    2024年02月11日
    浏览(35)
  • Redis为什么会这么快?Redis到底有多快?

    官方文档:https://redis.io/docs/management/optimization/benchmarks/ 我们使用redis自带的benchmark脚本测试: 我们发现,每秒可以执行11万多次set、lpush命令。 执行Lua脚本也能达到每秒10万多次,按照这个测试结果,redis的10万qps还是比较准确的,在高性能服务器上性能还能更强。 总结起来主

    2024年02月07日
    浏览(51)
  • 通俗介绍:什么是 Redis ?

    刚接触 Redis 的伙伴们可能会因为不熟悉而感到困惑。本文简述 Redis 是什么、有哪些作用的问题,是一篇短浅而入门级别的文章。 Redis官网:Redis 打开 Redis 官网可以看到,官方对 Redis 的介绍是这样的: The open source, in-memory data store used by millions of developers as a database , cache ,

    2024年02月08日
    浏览(39)
  • redis为什么快

      内存存储:Redis 主要将数据存储在内存中,内存的读写速度远高于磁盘存储。这使得 Redis 能够快速地响应读写请求,适用于对读写性能要求较高的场景。 单线程模型:Redis 使用单线程模型来处理客户端请求,避免了多线程间的锁竞争和上下文切换开销。虽然单线程模型在

    2024年01月19日
    浏览(62)
  • Redis为什么快?

    redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。和Memcached类似。redis支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。 它的速度快主要归功于以下几个方面: 内存

    2023年04月26日
    浏览(47)
  • 什么是Redis?

    Redis是一个高性能的key-value数据库,是由 Salvatore Sanfilippo 用C语言开发的一款开源的、高性能的键值对存储数据库,它采用 BSD 协议,为了适应不同场景下的存储需求,提供了多种键值数据类型。 支持的键值数据类型有字符串、列表、有序集合、散列及集合等。正是因为它有如

    2024年02月16日
    浏览(32)
  • 跨应用连接同一个redis,从redis取缓存,对象属性值都为null

    ✅ 原因:idea本地代码实体类未进行代码混淆,docker代码实体类进行了混淆,导致对象存在,但是对象属性值为nul debug反序列化源码如下 读取到的字段为A,实体类中为具体的属性,不存在A,找到问题所在 ❓当时排查了如下几个方面 实体类是否进行序列化,序列化id是否指定

    2024年02月13日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包