Redis学习笔记(一)
创始人
2024-03-03 10:07:58
0
  • NoSQL
    • 泛指非关系型数据库,作为关系型数据库的补充
    • 作用:应对海量用户和海量数据前提下的数据处理问题
    • 特征
      • 可扩容、可伸缩
      • 大数据量下高性能
      • 灵活的数据模型
      • 高可用
    • 常见的NoSQL数据库
      • Redis
      • memcache
      • HBase
      • MongoDB
  • 在这里插入图片描述
  • Redis
    • 一种高性能键值对数据库
    • 特征
      • 数据间没有必然的关联关系
      • 内部采用单线程机制进行工作
      • 高性能
      • 多数据类型支持
      • 持久化支持,可以进行数据灾难恢复
    • 应用
      • 为热点数据加速查询
      • 任务队列
      • 即时信息查询
      • 时效性信息控制
      • 分布式数据共享
      • 消息队列
      • 分布式锁
    • 基本操作
      • 信息添加:set key value
      • 信息查询(不存在为null):get key
      • 清楚屏幕信息:clear
      • 帮助
        • help 命令名称
        • help @组名
      • 退出
        • quit
        • exit
        • [esc键]
    • 数据类型
      • redis自身是一个map,其中所有的数据都是采用key:value形式存储
      • 数据类型指的是存储数据的类型
      • string
        • 存储的是单个数据

        • 存储数据的格式:一个存储空间保存一个数据

        • 存储内容:通常使用字符串,如果字符串以整数形式展示,可以作为数字操作使用

        • 基本操作

          • 添加/修改数据:set key value
          • 获取数据:get key
          • 删除数据 del key
          • 添加修改多个数据:mset key1 value1 key2 value2 …
          • 获取多个数据:mget key1 key2 …
          • 获取数据字符个数:strlen key
          • 追加信息到原始信息后部:append key value
          • 设置数值数据增加指定范围的值
            • incr key
            • incrby key increment
            • incrbyfloat key increment
          • 设置数值数据减少指定范围的值
            • decr key
            • decrby key increment
          • 设置数据具有指定的生命周期
            • setax key seconds value
            • psetax key milliseconds value
          • 在这里插入图片描述
        • 应用场景

          • 在这里插入图片描述
        • 在这里插入图片描述

    • hash
      • 新的存储需求:对一系列存储的数据进行编组
      • 需要的存储结构:一个存储空间保存多个键值对数据
      • hash类型:底层使用哈希表实现数据存储
      • hash存储结构优化
        • 如果field数量较少,存储结构优化成类数组结构
        • 如果field数量较多,存储结构使用HashMap结构
      • 基本操作
        • 添加/修改数据
          • hset key field value
        • 获取数据
          • hget key field
          • hgetall key
        • 删除数据
          • hdel key field1 (field2)
        • 添加/修改多个数据
          • hmset key field1 value1 field2 value2 …
        • 获取多个数据
          • hmget key field1 field2 …
        • 获取哈希表中字段的数量
          • hlen key
        • 获取哈希表中是否存在指定的字段
          • hexists key field
        • 获取哈希表中所有字段名
          • hkeys key
        • 获取哈希表中所有字段值
          • hvals key
        • 设置指定字段数据数值增加指定范围的值
          • hincrby key field increment
          • hincrbyfloat key field increment
        • 为不存在的字段赋值:
          • hsetnx key field value
      • 注意
        • hash类型下value只能存储字符串
        • 如果数据未获取到,值为nil
        • 每个hash可以存储2^32-1个键值对
        • hash类型十分贴近对象的数据存储形式,并且可以灵活删除对象属性,但hash设计初衷不是为了存储大量对象而设计的,不可滥用,更不可以将hash作为对象列表使用
        • hgetall可以获取全部属性,如果内部field过多,整体遍历数据效率就会很低
      • 应用场景
        • 购物车
        • 抢购
    • list
      • 存储多个数据,通过数据体现进入顺序
      • 底层使用双向链表存储结构
      • 基本操作
        • 添加/修改数据
          • lpush key value1 [value2] …
          • rpush key value1 [value2]…
        • 获取数据
          • lrange key start stop
          • lindex key index
          • llen key
        • 获取并移除数据
          • lpop key
          • rpop key
        • 规定时间内获取并移除数据
          • blpop key1 [key2] timeout
          • brpop key1 [key2] timeout
        • 移除指定数据
          • lrem key count value
      • 注意
        • list保存的数据都是string类型的
        • 具有索引概念,但通常以队列或栈的形式操作的
        • 获取全部数据操作结束,索引设置为-1
        • 可以对数据进行分页操作
      • 应用场景
        • 具有顺序的特征对信息进行管理
        • 使用队列模型解决多路信息汇总合并的问题
        • 使用栈模型解决最新消息的问题

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...