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

大数据之Redis

NoSQL

  1. SQL数据库泛指关系型数据库
  2. NoSQL不拘泥于关系型数据的设计范式,放弃了通用的技术标准,为某一特定领域场景而设计

NoSQL的特点

  1. 不遵循SQL标准
  2. 不支持ACID
  3. 远超SQL的性能

NoSQL的适用场景

  1. 对数据高并发的读写
  2. 海量数据的读写
  3. 对数据高可扩展性的

NoSQL的不适用场景

  1. 需要事务ACID支持,有自己的事务,但是事务执行失败后不会进行回滚之类的操作。
  2. 基于sql的结构化查询存储,处理复杂的关系,需要即席查询

NoSQL家族

  1. Memcached:不支持持久化,一般是作为缓存数据库,辅助持久化的数据库
  2. Redis:支持持久化,用作备份恢复,支持丰富的类型
  3. mongoDB:文档型数据库
  4. HBase: hadoop项目的数据库,主要用于对大量数据进行随机、实时的读写操作
  5. Neo4j: 图结构数据库

官网

redis.io

Redis是什么

  1. 是一个开源的key-value存储系统
  2. 它支持存储的value类型相对更多,value可以是字符串,链表,set, list, zset和hash类型
  3. 会周期性把更新的数据写入磁盘或者把修改操作写入追加的记录文件
  4. 支持高可用和集群模式

经典使用场景

  1. 旁路缓存模式,承担Mysql的读请求,用来缓存一些热门的读请求数据。
  2. Redis里面的数据有TTL,time to live,适合那些只需短期存储后需要自动删除的数据
  3. 手机验证码,redis缓存设置TTL + 第三方运营商发送短信

显示行号

:set nu

前台改后台启动

  1. vim redis.conf
  2. daemonize yes
  3. 改为后台进程后,ps -ef | grep redis可以用来查看进程是否正常启动
  4. redis-cli 默认是连本机,端口号是6379
  5. redis-cli -h localhost -p 6379 指定主机和端口号
  6. 关闭服务 redis-cli shutdown

key的常用操作

  1. keys * : 查看所有的key
  2. keys k*: 查看所有k开头的key
  3. exists k1: 判断k1是否存在,1存在,0不存在
  4. type l1 : 判断l1的类型
  5. del l1 : 删除l1
  6. expire k1 10 : 设置k1存活10秒钟
  7. dbsize :查看当前库的key的个数
  8. flushdb: 清空当前库

Redis的五大数据类型

String特点及常用操作

  • 特点:存单值对象,二进制安全,可以存对象,一般转为json

  • 常用操作:

    • set k1 v1: 添加
    • get k1 获取
    • append k1 23: 追加
    • setnx k1: 如果不存在则添加
    • strlen k1 : 获取value的长度
    • incr k4 : 自增
    • decr k4 自减
    • incrby k4 步长:增加步长
    • mset k1 k2 k3 v4: 同时设置多个
    • getrange email 9 15 : 取子串
    • setrange email 9 xxxxxx 覆盖子串
    • setex k9 10 : 设置k9的ttl
    • getset: 设置新值,获取新值

List特点及常用操作

  • list特点:单键多值,底层是双向链表;有正向下标和反向下标,可以混合使用。
  • 常用操作
    • lpush l1 v1 v2 v3 v4 v5: 放入元素
    • lrange 0 -1 : 取出所有value
    • lpop: 从左边删除一个值
    • rpop: 从右边删除一个值
    • rpoppush: 从右边删除一个,插入左边
    • lindex
    • llen
    • linsert key before|after : 插入
    • lrem l2 2 aa : 移除两个aa

Set特点及常用操作

  • set特点:无序不重复,提供了判断某个成员是否存在的接口
  • set常用操作:
    • sadd
    • sismember: 判断是否是成员
    • scard key : 删除
    • spop key : 取出并删除一个值
    • srandmemeber key 3: 随机取出几个,不删除
    • sinter k1 k2 : 返回多个集合的交集元素
    • sunion k1 k2: 返回多个集合的并集元素
    • sdiff k1 k2 : 返回多个集合的差集元素

ZSet特点及常用操作

  • 特点:有序Set, 根据排序有序,每个成员关联了一个score,根据score来排序。
  • 常用操作:
    • zadd 添加
    • zrange 正序取
    • zrevrange 倒序取
    • zrangebyscore 取出指定范围的数据
    • zincrby : 指定成员加分
    • zrem : 删除指定成员
    • zcount: 统计指定范围的元素个数
    • zrank 返回指定成员的排名

Hash类型特点及常用操作

  • 特点:键值对类型,支持单独修改每个属性,也支持读取整个元素。

  • 操作

    • 写入: hset
    • 读取: hget / hgetall
    • 修改: hincby
    • 判存:hexists

Jedis

Redis的java客户端,可以通过Java代码的方式操作Redis.

参数配置

  • logfile 路径,配置日志存放地址
  • replication,主从模式配置
  • clients, 配置最大客户连接数,默认10000
  • 内存管理
    • maxmemeory:最大可用内存
    • maxmemory-ploicy:淘汰策略,一般是LRU或者是LFU

Redis持久化

  1. RDB快照备份:将内存中的所有数据持久化到磁盘的一个文件中
    • 数据庞大时比较消耗性能,如果redis意外停机时,会丢失最后一次备份前的数据
  2. AOF日志备份:将所有写操作命令记录在一个日志文件中
    • vim redis.conf中appendonly no,先不修改,如果修改会导致访问redis时得不到任何数据。
    • 如果redis有数据时,使用set appendonly yes, 会发现aof文件大小等于RDB的大小

如何持久化

主进程和副进程使用fork方式来进行的,主进程和副进程之间的数据是可以互通的。

相关文章:

大数据之Redis

NoSQL SQL数据库泛指关系型数据库NoSQL不拘泥于关系型数据的设计范式,放弃了通用的技术标准,为某一特定领域场景而设计 NoSQL的特点 不遵循SQL标准不支持ACID远超SQL的性能 NoSQL的适用场景 对数据高并发的读写海量数据的读写对数据高可扩展性的 N…...

【React设计】React企业级设计模式

Image Source : https://bugfender.com React是一个强大的JavaScript库,用于构建用户界面。其基于组件的体系结构和构建可重用组件的能力使其成为许多企业级应用程序的首选。然而,随着应用程序的规模和复杂性的增长,维护和扩展变得更加困难。…...

赴日程序员高年薪过上“躺平”生活?

日本的IT行业想要达到的高薪,也是需要很多资历和经验的,不过即使你是新卒,也能拿到相比国内来说让你满意的薪资。 刚入职的起薪是20-23万日元/月,情报信息业出身,技术掌握不错,起薪是25万-30万日元。之后经…...

Windows开启SQL Server服及1433端口

需求:Windows开启SQL Server服务及1433端口 目前端口没有启动 解决: 打开SQL Server配置管理器(winR) 各个sqlserver版本在textbox中输入对应的命令如下: SQLServerManager15.msc(对于 SQL Server 2019 &am…...

网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

Java全能学习面试指南:https://javaxiaobear.cn 网盘,又称云盘,是提供文件托管和文件上传、下载服务的网站(File hostingservice)。人们通过网盘保管自己拍摄的照片、视频,通过网盘和他人共享文件&#xff…...

整数和浮点数在内存中的存储

文章目录 每日一言整数在内存中的存储方式浮点数在内存中的存储结语 每日一言 You just can’t beat the person who never gives up. 你无法打败那位永不放弃的人。 整数在内存中的存储方式 整数在内存中的存储方式通常采用二进制形式,即将整数的数值转化为二进制…...

rabbitMQ镜像队列的使用

在rabbitMQ集群中,默认发送消息时,队列默认时在一个节点上存在的。 我们以node01 node02 node03三节点集群为例,在node01声明队列发送消息后,发现: 测试队列只在节点node01上出现。 我们手动停止node01后&#xff0c…...

ros来保存图像和保存记录视频的方法---gmsl相机保存视频和图片

1,保存图片 rosrun image_view image_view image:=/myimg_topic这个命令只是用来查看图像的,它并不会保存图像。如果你想要保存图像,你需要使用image_saver节点,并指定保存路径。例如: 下面指令就可以了,可以用 rosrun image_view image_saver image:=/myimg_topic _fi…...

Oracle19c使用adrci清理日志文件

Oracle中通常有好多日志文件,遇到异常情况会产生大量日志,造成磁盘空间紧张。 故需要清理对应文件。包括trace文件,incident文件,listener log文件等。 19c中oracle提供了一个ADRCI的命令行工具来查看ADR中的alert日志和trace信息…...

Ubuntu之Sim2Real环境配置(坑居多)

不要一上来就复制哦,因为很多下面的步骤让我走了很多弯路,如果可能的话,我会重新整理再发出来 前提: 参考教程 Docs 创建工作空间(不用跟着操作,无用) 1.创建sim2real server container 1.尝试创建sim2r…...

java中BigDecimal里面的subtract函数的意思?

在Java中,BigDecimal类提供了一个名为subtract()的函数,用于执行两个BigDecimal对象的减法操作。该函数返回一个新的BigDecimal对象,表示两个操作数相减的结果。 下面是BigDecimal.subtract()函数的用法示例: java Copy code im…...

线程变量引发的session混乱问题

最近不是在救火,就是在救火的路上。 也没什么特别可写的,今天记录下最近遇到的一个问题,个人觉得挺有意思, 待有缘人阅读 言归正传,售后反馈: 营业查询中付款方式为第三方支付的几条银行缴费,创…...

dockerfile与docker-compose解释及对比

Dockerfile 是一个文本文件,用于定义单个Docker镜像的构建过程和配置。它包含了一系列的指令,如FROM、RUN、COPY、CMD等,按照顺序执行这些指令来构建镜像。Dockerfile可以定义容器的基础镜像、安装依赖软件、拷贝文件、运行命令等操作。通过…...

数据库更换版本

目录 0.前言 1.官网下载MySQL 2.配置初始化文件my.ini 3.初始化MySQL 4.安装mysql服务并启动修改密码 5.配置环境变量​编辑 0.前言 心累,为了完成实验,必须使用8.0版本导致我更新版本的时候,把sqlyog干崩溃了,什么版本不兼…...

Unity Meta Quest 一体机开发(九):【手势追踪】通过录制抓取手势实现自定义抓取姿势

文章目录 📕教程说明📕录制前的准备📕第一种录制方法(Hand Grab Pose Tool 场景)⭐在运行模式中确认录制⭐保存录制的手势,将物体做成 Prefab⭐在编辑阶段调整抓取手势🔍Fingers Freedom&#x…...

Git 简介及异常场景处理

一、简介 介绍Git之前,还得先介绍下 版本控制系统(VCS), 和它的发展历史 纵观版本控制系统的发展历史,广义上讲,版本控制工具的历史可以分为三代: 第一代 第一代版本控制系统被称为本地版本控…...

龙迅LT2611UX 四端口LVDS转HDMI(2.0)

1.描述: LT2611UX 四端口LVDS TO HDMI2.0。 LT2611UX是一款高性能得LVDS到HDMI2.0转换器得STB,DVD应用程序,LVDS输入可以配置单端口,双端口或者四端口,带有一个高速时钟通道,最多可运行三到四个高速数据…...

MySQL基础『数据类型』

✨个人主页: 北 海 🎉所属专栏: MySQL 学习 🎃操作环境: CentOS 7.6 阿里云远程服务器 🎁软件版本: MySQL 5.7.44 文章目录 1.数据类型一览2.整型2.1.INT2.2.BIT 3.浮点数3.1.FLOAT3.2.DECIMAL3…...

SQL手工注入漏洞测试(PostgreSQL数据库)-墨者

———靶场专栏——— 声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。 靶场背景: 来源: 墨者学院 简介: 安全工程师"墨者"最近在练习SQL手工注入漏洞&#…...

STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础

STM32单片机项目实例:基于TouchGFX的智能手表设计(1)项目介绍及GUI界面基础 一、项目介绍 1.1方案提供 1.2主控选择 1.3硬件平台 1.4 开发环境 1.5 关于华清 二、GUI界面基础 2.1.1 嵌入式绘图系统 2.1.1 色彩格式 2.1.1帧缓冲区 …...

【超详细教程】基于html+js实现轮播图

轮播图是现代网页设计中常见的元素之一,它能够展示多张图片或内容,在有限的空间内循环播放,提升网页的视觉效果和用户体验。下面将以一个简单的网页轮播图为例,说明如何基于HTML和JavaScript实现。 ​ 1、R5Ai智能助手 chatgpt国…...

C++11(上)

统一的列表初始化 首先要说明: 这个列表初始化和类和对象那里的初始化列表不是一个概念. {} 初始化 在C98中, 标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定. 比如: C语言里面其实就是这样支持的, 所以可以认为C支持这样就是因为要兼容C. 在…...

web前端开发规范、HTML规范、JavaScript规范、style规范

MENU 前言目的 HTML规范用法规范注释规范 CSS规范用法规范书写顺序样式覆盖注释规范 JavaScript规范用法规范组件选项注释规范 命名规范目录命名图片命名文件命名方法命名样式命名常用词 工程结构目录构建代码风格 Git规范分支说明使用说明 相关连接 前言 目的 规范的目的是为…...

骨传导耳机会影响听力么?盘点骨传导耳机的好处与坏处都有哪些?

先说结论,使用骨传导耳机是不会影响听力的!并且由于骨传导耳机的特殊传声原理,相比于传统的入耳式耳机,骨传导耳机拥有更多的优点,下面带大家了解一下骨传导耳机的优点和缺点都有哪些。 一、骨传导耳机的优点是什么&a…...

前端与VR/AR:代码的魔法穿越

摘要: 前端开发者们,快戴上VR头盔,准备好进入未知的虚拟世界!本文将深度解析前端如何携手VR/AR技术,创造出更为奇妙的用户体验,同时以幽默的笔调诠释这场代码与虚拟现实的魔法邂逅。 引言 在前端的世界中…...

elment Loading 加载组件动态变更 text 值bug记录

先上效果图: 倒计时4分钟组件方法 // 倒计时 4分钟getSencond() {this.countDown 4分00秒this.interval setInterval(() > {this.maxTime--;let minutes Math.floor(this.maxTime / 60);let seconds Math.floor(this.maxTime % 60);minutes minutes < 10 ? 0 minu…...

Typora免费版安装教程(仅供学习)

目录 一、Typora简介二、Typora安装三、Typora补丁四、Typora使用体验五、总结 一、Typora简介 Typora是一款非常流行的Markdown编辑器&#xff0c;它能够将Markdown文本转化为漂亮的排版&#xff0c;并且支持实时预览。Typora具有简单易用的界面&#xff0c;使得用户可以轻松地…...

SSM项目实战-前端-添加分页控件-调正页面布局

1、Index.vue <template><div class"common-layout"><el-container><el-header><el-row><el-col :span"24"><el-button type"primary" plain click"toAdd">新增</el-button></el-…...

C语言从入门到实战——常用字符函数和字符串函数的了解和模拟实现

常用字符函数和字符串函数的了解和模拟实现 前言1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strcat的使用和模拟实现6. strcmp的使用和模拟实现7. strncpy函数的使用8. strncat函数的使用9. strncmp函数的使用10. strstr的使用和模拟…...

nodejs+vue+elementui网上家电家用电器数码商城购物网站 多商家

基于vue.js的恒捷网上家电商城系统根据实际情况分为前后台两部分&#xff0c;前台部分主要是让用户购物使用的&#xff0c;包括用户的注册登录&#xff0c;查看公告&#xff0c;查看和搜索商品信息&#xff0c;根据分类定位不同类型的商品&#xff0c;将喜欢的商品加入购物车&a…...

网站建设的目标用户是/免费正规的接单平台

SELECT DATE_FORMAT( time, %Y-%M ) AS format_time from t_order,%a缩写星期名%b缩写月名%c月&#xff0c;数值%D带有英文前缀的月中的天%d月的天&#xff0c;数值(00-31)%e月的天&#xff0c;数值(0-31)%f微秒%H小时 (00-23)%h小时 (01-12)%I小时 (01-12)%i分钟&#xff0c;数…...

营口建设信息网站/seo优化培训课程

在过去的几个星期&#xff0c;(几乎)每次都有消息 Ubuntu 15.04在启动时检测到系统程序错误 跑出来“欢迎”我。那时我是直接忽略掉它的&#xff0c;但是这种情况到了某个时刻&#xff0c;它就让人觉得非常烦人了&#xff01;检测到系统程序错误(System program problem detect…...

网站制作怎么做语音搜索框/google app下载

最新版 Docker 安装 Nginx1、在Docker中查询Nginx2、选择最新版本安装3、查询Docker容器中的镜像4、启动Nginx5、查询是否启动Nginx镜像6、停止Nginx7、删除Nginx容器1、在Docker中查询Nginx [rootshiqi /]# docker search nginx #查询结果 NAME …...

建设个读书网站大约需要投入多少钱/dy刷粉网站推广马上刷

上一篇中分析了Scala版的console producer代码&#xff0c;这篇文章为读者带来一篇console consumer工作原理分析的随笔。其实不论是哪个consumer&#xff0c;大部分的工作原理都是类似的。本文利用console consumer作为切入点&#xff0c;既容易理解又不失一般性。本文使用的K…...

石家庄专业网站设计电话/百度电话号码查询平台

box-shadow 以逗号分割列表来描述一个或多个阴影效果&#xff0c;可以用到几乎任何元素上。 如果元素同时设置了 border-radius &#xff0c;阴影也会有圆角效果。多个阴影时和多个 text shadows 规则相同(第一个阴影在最上面)。默认值: none 不可继承值&#xff1a; inset 默…...

广州购物商城网站开发/外贸网站制作公司哪家好

【关键导读】文中结合一次重保活动的性能压测需求&#xff0c;详解了整体的性能测试策略及性能分析思路&#xff0c;并在实施过程中有效利用了NPT性能测试平台完成了压测场景设计、执行、业务指标监控、性能指标分析&#xff0c;结合监控找出了性能瓶颈并给出了相应的性能优化解…...