Redis学习笔记(一)

news2025/1/20 5:53:45
  • 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
        • 可以对数据进行分页操作
      • 应用场景
        • 具有顺序的特征对信息进行管理
        • 使用队列模型解决多路信息汇总合并的问题
        • 使用栈模型解决最新消息的问题

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计springboot酒店在线预约咨询小程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

STL 迭代器萃取

导言 什么是迭代器 迭代器是一种抽象的设计概念,《Design Patterns》一书中对于 iterator 模式的定义如下:提供一种方法,使之能够依序巡访某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表述…

wcdma基站的重选和切换

首先移动组网的特点,单个基站覆盖一定区域范围,我们称之为小区,为了组成一个连续服务不断的网,需要在空间上部署多个基站,应对用户的移动。 为了实现业务的连续性,必须给每个小区设置相邻的小区&#xff0c…

C/C++-指针

C/C-指针参考1. 指针指针与内存/地址指针使用2.数组指针数组/指针/sizeof一维数组与指针多维数组指针3.字符/字符串指针4. 其他指针二级指针 -- 还没看空指针void指针野指针5.指针与函数函数指针引用传递指针函数6.结构体指针结构体数组指针???c 对象指针参考 https://www.…

Kotlin 开发Android app(十四):startActivity跳转Activity活动

从一个Activity跳到另一个Activity 在编写安卓代码是最常见的事情了。我们不可能在一个页面中,把所有的事情都做完。 在kotlin中跳转的程序也比较简单,跟java差不多。如果熟悉java代码的话,只需要把代码改变过来而已。 带参数的调整 从一个…

极空间Docker安装Alist套件整合阿里云盘、百度云盘等网盘资源并挂载到本地供极影视刮削播放完整教程

文章目录0、前言1、在docker中安装alist套件1.1、拉取并下载alist镜像1.2.安装alist镜像2、访问并设置alist2.1、访问alist2.2、配置alist2.2.1、在alist中添加阿里云盘2.2.2、在alist中添加其它网盘3、在极空间中将前述网盘挂载到本地4、在极影视中扫描刮削挂载到本地的云盘中…

如何制作一个微信小程序【微信小程序是怎么做的】

为什么现在这么多人使用微信小程序呢?因为微信小程序除了便捷易开发,公司企业可以用来做小程序展示官网,商家也可以做小程序商城,甚至个人也可以拥有自己的小程序。那么如何制作一个微信小程序?微信小程序是怎么做的呢…

第二证券|房地产股债嗨了,百余只个股谁受热捧?谁还受益?

29日,AH股房地产板块狂飙,地产债反常火热。 A股地产股开盘即掀涨停潮,中国武夷、中交地产、空港股份、光大嘉宝、中华企业等超10股竞价涨停。港股内房股大幅高开,碧桂园、富力地产、新城开展等多股涨超10%,盘中三巽集…

Crack:Stimulsoft BI Server 2022.4.5

Stimulsoft BI Server 是一个客户端-服务器系统,可让您高效且有效地实施使用报告和仪表板的完整周期,从执行信息处理任务的设计和自动化开始,到为方便地向用户展示结果做准备结束。报告模块的功能和功能是使用 Stimulsoft 的快速现代技术实现…

一、Vue3基础[组件(props、事件、插槽)]

一、组件化 解释:正如上图所示,一个页面可以分为多块部分,但是如果把所有代码都写在一个vue文件当中,维护性和可读性都会很差,所以需要用到组件化思维->创建多个vue文件每个里面写一部分代码,然后集中在一个主的vue文件调用 二、组件的注册 1.全局 解释:顾名思义,…

【Java盲点攻克】「时间与时区系列」让我们一起完全吃透对于时区和日期相关的功能开发原理

技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda。文章主要对java日期处理的详解,用1.8可以不用joda。 时间概念 首先我们对一些基本的概念做一些介绍,其中可以将GMT和UTC表示时…

自然算法 - AI面试基础补全

手撕BP神经网络手写Bert和Transformer(BERT很细节的地方,比如文字标签CLS,par)学习pytorch,tensorflow AI算法岗位 可看网站 牛客网站 面经回复 github 项目连接 算法工程师岗位必备知识 问答 ELMO、GPT、…

Linux系统下KVM虚拟机的基本管理和操作

Linux系统下KVM虚拟机的基本管理和操作一、检查本地环境1.检查系统版本2.检查防火墙状态3.检查selinux3.检查libvirtd服务状态4.检查kvm安装结果5.检查kvm虚拟机状态6.检查virsh版本二、virsh常用命令1.列出虚拟机2.虚拟机开关机操作3.删除虚拟机4.设置虚拟机在宿主机开机时自启…

装在笔记本里的私有云环境:K8s 集群准备

本篇是系列中的第六篇内容,继续聊聊如何把一个简化过的私有云环境部署在笔记本里,以满足低成本、低功耗、低延时的实验环境。 在前几篇内容中,我们聊过了:虚拟化、监控、基础的存储、持续集成等内容,接下来的内容中&a…

告诉你如果对一个新产品进行测试

初入一家公司,当一个全新的产品摆在你的面前,你会如何快速入手呢?点、点、点。。。虽说实践是熟悉系统的第一要素,但我们需要静静思考一下。我是谁?--QA我在哪?--**产品组我要做什么?--保质量有…

Nature:“我还有用!“凋亡细胞释放的代谢物充当组织信使

代谢组学文献分享,细胞凋亡是指为维持内环境稳定,由基因控制的细胞自主的有序的死亡。2002年授予在“发现细胞凋亡的重要调控分子并阐述其作用机制”方面做出重要贡献的三位科学家诺贝尔生理和医学奖,caspase依赖的细胞凋亡约占机体内稳态细胞…

多线程初阶(一)

目录 前言: 认识多线程 创建线程 run方法和start区别 继承Thread类 实现Runnable接口 匿名内部类实现继承Thread类 匿名内部类实现Runnable接口实例 Lambda表达式 中断线程 等待线程 线程休眠 线程状态 线程状态之间切换 代码观察线程的状态 线程安…

多点DMALL × Apache Kyuubi:构建统一SQL Proxy探索实践

伴随着国家产业升级的推进和云原生技术成熟,多点 DMALL 大数据技术也经历了从存算一体到存算分离的架构调整变迁。本文将从引入 Kyuubi 实现统一 SQL Proxy 的角度讲述这一探索实践的历程。 多点 DMALL 成立于2015年,提供一站式全渠道数字零售解决方案 D…

STL的常用算法-查找 (20221130)

STL的常用算法 概述&#xff1a; 算法主要是由头文件<algorithm> <functional> <numeric> 组成。 <algorithm>是所有STL头文件中最大的一个&#xff0c;涉及比较、交换、查找、遍历等等&#xff1b; <functional>定义了一些模板类&#xff0…

使用记账软件记录生活收支明细,如何防止收支不被他人修改

坚持记账是每个人都必须要做的事情&#xff0c;日常生活中的生活开支都是一笔笔的支出&#xff0c;一个月挣来的工资&#xff0c;在不知不觉之中就花完了&#xff0c;可以使用——晨曦记账本记录生活明细&#xff0c;为了防止被他人修改&#xff0c;该如何操作呢&#xff1f;一…