大数据之Redis
NoSQL
- SQL数据库泛指关系型数据库
- NoSQL不拘泥于关系型数据的设计范式,放弃了通用的技术标准,为某一特定领域场景而设计
NoSQL的特点
- 不遵循SQL标准
- 不支持ACID
- 远超SQL的性能
NoSQL的适用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
NoSQL的不适用场景
- 需要事务ACID支持,有自己的事务,但是事务执行失败后不会进行回滚之类的操作。
- 基于sql的结构化查询存储,处理复杂的关系,需要即席查询
NoSQL家族
- Memcached:不支持持久化,一般是作为缓存数据库,辅助持久化的数据库
- Redis:支持持久化,用作备份恢复,支持丰富的类型
- mongoDB:文档型数据库
- HBase: hadoop项目的数据库,主要用于对大量数据进行随机、实时的读写操作
- Neo4j: 图结构数据库
官网
redis.io
Redis是什么
- 是一个开源的key-value存储系统
- 它支持存储的value类型相对更多,value可以是字符串,链表,set, list, zset和hash类型
- 会周期性把更新的数据写入磁盘或者把修改操作写入追加的记录文件
- 支持高可用和集群模式
经典使用场景
- 旁路缓存模式,承担Mysql的读请求,用来缓存一些热门的读请求数据。
- Redis里面的数据有TTL,time to live,适合那些只需短期存储后需要自动删除的数据
- 手机验证码,redis缓存设置TTL + 第三方运营商发送短信
显示行号
:set nu
前台改后台启动
- vim redis.conf
- daemonize yes
- 改为后台进程后,ps -ef | grep redis可以用来查看进程是否正常启动
- redis-cli 默认是连本机,端口号是6379
- redis-cli -h localhost -p 6379 指定主机和端口号
- 关闭服务 redis-cli shutdown
key的常用操作
- keys * : 查看所有的key
- keys k*: 查看所有k开头的key
- exists k1: 判断k1是否存在,1存在,0不存在
- type l1 : 判断l1的类型
- del l1 : 删除l1
- expire k1 10 : 设置k1存活10秒钟
- dbsize :查看当前库的key的个数
- 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持久化
- RDB快照备份:将内存中的所有数据持久化到磁盘的一个文件中
- 数据庞大时比较消耗性能,如果redis意外停机时,会丢失最后一次备份前的数据
- 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)。人们通过网盘保管自己拍摄的照片、视频,通过网盘和他人共享文件ÿ…...
整数和浮点数在内存中的存储
文章目录 每日一言整数在内存中的存储方式浮点数在内存中的存储结语 每日一言 You just can’t beat the person who never gives up. 你无法打败那位永不放弃的人。 整数在内存中的存储方式 整数在内存中的存储方式通常采用二进制形式,即将整数的数值转化为二进制…...
rabbitMQ镜像队列的使用
在rabbitMQ集群中,默认发送消息时,队列默认时在一个节点上存在的。 我们以node01 node02 node03三节点集群为例,在node01声明队列发送消息后,发现: 测试队列只在节点node01上出现。 我们手动停止node01后,…...
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帧缓冲区 …...
80+经典游戏宽屏焕新:WidescreenFixesPack重塑怀旧体验
80经典游戏宽屏焕新:WidescreenFixesPack重塑怀旧体验 【免费下载链接】WidescreenFixesPack Plugins to make or improve widescreen resolutions support in games, add more features and fix bugs. 项目地址: https://gitcode.com/gh_mirrors/wi/WidescreenFi…...
Mac上PPT讲稿一键变文稿:用AppleScript自动化导出备注到TXT(附完整代码)
Mac上PPT讲稿一键变文稿:用AppleScript自动化导出备注到TXT(附完整代码) 每次做完PPT,看着密密麻麻的备注栏,你是不是也头疼怎么把这些零散的讲稿整理成连贯的文档?作为一位经常需要准备培训材料的讲师&…...
RWKV7-1.5B-g1a轻量对话模型应用:微信公众号自动回复+知识库问答搭建
RWKV7-1.5B-g1a轻量对话模型应用:微信公众号自动回复知识库问答搭建 1. 模型简介与特点 rwkv7-1.5B-g1a 是基于 RWKV-7 架构的多语言文本生成模型,特别适合中文轻量对话场景。相比传统大模型,它具有以下优势: 资源占用低&#…...
Qwen3-Reranker-0.6B效果展示:中英术语对照表构建中的跨语言排序
Qwen3-Reranker-0.6B效果展示:中英术语对照表构建中的跨语言排序 1. 跨语言术语排序的技术挑战 在全球化信息时代,构建准确的中英术语对照表已成为跨语言交流、技术文档翻译和国际合作的重要基础。传统方法往往面临几个核心痛点: 语义鸿沟…...
抖音视频智能管理:如何通过批量下载与自动化分类实现90%效率提升
抖音视频智能管理:如何通过批量下载与自动化分类实现90%效率提升 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在短视频内容爆炸的时代,高效的视频采集、批量下载与系统化内容管理已…...
Revit插件开发效率革命:热重载技术如何彻底改变你的开发流程
Revit插件开发效率革命:热重载技术如何彻底改变你的开发流程 【免费下载链接】RevitAddInManager Revit AddinManager update .NET assemblies without restart Revit for developer. 项目地址: https://gitcode.com/gh_mirrors/re/RevitAddInManager RevitA…...
从“连连看”到DFA最小化:一个游戏化思路帮你彻底理解状态等价
从“连连看”到DFA最小化:用游戏化思维破解编译原理难题 编译原理作为计算机科学的核心课程之一,常常让初学者望而生畏。特别是当教材开始讨论"确定性有限自动机(DFA)最小化"这类概念时,那些抽象的状态转换图…...
微信单向好友检测终极指南:如何一键找出并清理删除你的微信好友
微信单向好友检测终极指南:如何一键找出并清理删除你的微信好友 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFr…...
手把手教你搞定CMT2300A的315MHz匹配电路:从原理图到物料清单(附实测数据)
深入解析CMT2300A在315MHz频段的射频匹配电路设计与实战优化 作为一名长期深耕射频硬件设计的工程师,我最近在工业遥控器项目中遇到了一个典型挑战:如何为CMT2300A设计稳定可靠的315MHz匹配电路。与常见的433MHz应用不同,315MHz频段在元件参数…...
SAP资产会计数据迁移:除了AS91,你还需要检查这些关键配置(传输日期、抵销科目详解)
SAP资产会计数据迁移:AS91之外的7个关键配置陷阱与解决方案 当你在凌晨三点盯着屏幕上不平的资产折旧凭证时,AS91的简单操作指南显然已经不够用了。作为经历过数十个SAP上线项目的顾问,我发现90%的资产数据迁移问题都源于那些容易被忽略的后台…...
