redis介绍与布署
-
redis
-
remote dictionary server(远程字典服务器)
-
是一个开源的,使用c语言编写的非关系型数据库,支持内存运行并持久化,采用key-value的存储形式。
-
单进程模型意味着可以在一台服务器上启动多个redis进程,redis处理速度依赖于主进程的执行效率,意味着多个redis进程会增加处理效率,但是对cup的压力就会比较大,需要根据需要来决定redis的进程数量。多进程适合高并发的处理
-
优点:
-
极高的读写速度
-
支持多种数据类型
-
数据的持久化
-
原子性:要么都执行,要么都不执行
-
支持数据备份(主备结构备份)
-
-
安装部署
-
用阿里提供的版本较低,3.2
-
去官网下载,https://www.redis.io
-
下载相应的较高的版本,本案例以4.0.9为例
-
-
准备前奏
-
添加防火墙策略,关闭内核安全机制
-
安装编译依赖包
-
gcc* zlib-devel
-
-
-
解压安装
-
redis是直接配置好的程序,需要配置,值得一提的是需要在安装这一步指定路径前缀来确定安装位置。
-
-
初始化
-
-
在解压目录下的utils目录下会有一个初始化工具,源码包安装的数据库一般要经过初始化才能进行使用,
-

-
标识1:指定redis进程端口,可以设置不同的端口来开启多个redis进程。
-
标识2:指定配置文件的位置及名称。一般与端口对应。
-
标识3:日志文件名称,也与端口保持一致
-
标识4:对于redis来说持久化需要有对应的文件来保存数据,该项就是指定该文件的位置。
-
标识5:指定redis的命令路径。
-
建议在初始化时先优化命令路径,避免最后一项出现空需要手动指定。
-
-
初始化完毕后进程就开始运行了,可以查看进程来确定。
-
netstat -anpt | grep redis
-
-
-
配置参数的优化
-
查找bind修改监听地址
-
需要注意的是只能有一个bind,监听地址需要写在后面。
-
例:bind 127.0.0.1 192.168.10.101
-
-
-
查找port可以修改端口
-
port 6379
-
-
查找daemon来决定是否以守护进程方式运行
-
daemonize yes
-
-
查找loglevel可以修改记录日志的级别
-
默认是notice
-
-
查找pidfile可以看pid文件存放位置。
-
-
服务控制脚本
-
/etc/init.d/redis_6379
-
利用该脚本可以进行重启关闭等操作。可以做软链接方便操作。
-
-
-
redis工具
-
redis-server
-
启动redis的工具
-
-
redis-benchmark
-
检测本机redis运行效率的工具,redis自带
-

-
常用的-c + -n 测试并发连接性能
-
-q -d 测试存取性能,测试完毕后退出
-
-t 测试某个命令可以测试多个用“,“分隔,-n 测试数量 -q 测试完退出
-
-
-
redis-check-aof
-
修复aof持久化文件
-
-
redis-check-rdb
-
修复rdb持久化文件
-
-
redis-cli
-
命令行工具
-
-
利用该工具可以进入到redis命令行模式,
-
远程连接
-
-h 指定IP地址
-
-p 指定端口
-
-
help 获取帮助
-
-
-
-
redis常用命令
-
存放数据
-
set 键 值
-
-
获取数据
-
get 键 值
-
-
查看所有键
-
keys *
-
支持正则表达式
-
例查看以v开头的:v*
-
例查看固定未知数的v??,一个”?“代表一个未知
-
-
-
判断键值是否存在
-
exists 键
-
返回值为1代表存在。0为不存在
-
-
-
删除键
-
del 键
-
-
查看键类型
-
type 键
-
redis数据类型
-
String:最简单的类型,就是普通的set和get,作key value缓存。
-
Hash:类似map的一种结构,一般就是可以将结构化的数据,比如一个对象给缓存在redis里
-
List:List是有序列表,可以通过list存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西
-
Set:Set是无序集合,自动去重。
-
Sorted Set:Sorted Set是排序的set,去重但可以排序,写进去的时候给一个分数,自动根据分数排序
-
-
-
-
重命名键
-
rename
-
renamenx
-
建议使用该方式,该命令在重命名时会检测新名是否存在,避免被覆盖的可能。
-
-
-
dbsize
-
查看当前库键数
-
-
数据库之间切换
-
默认redis库有16个范围0~15
-
select 库名
-
-
数据库之间数据转移
-
move 键 库名
-
-
清除数据
-
当前库
-
flushdb
-
-
所有库
-
flushall
-
-
-
-
redis持久化
-
rdb
-
生成快照保存到磁盘内,下次启动将数据重新读到内存内。
-
优点:占用资源少,对磁盘i/o压力小
-
缺点:会造成数据的不一致性
-
异步(半持久模式)
-
-
aof
-
创建日志,将命令追加到日志末尾
-
优点:数据一致性高
-
缺点:占用资源较多,对磁盘i/o压力大
-
同步(全持久化模式)
-
-
选择参考依据
-
性能较好,或对数据一致性要求较高采用aof
-
性能差,对数据一致性要求不高采用rdb
-
-
如果两者同时存在
-
如果先开启了aof则会优先采用aof恢复数据
-
如果先开启了rdb,会先恢复rdb数据,然后在恢复aof数据,并且aof会覆盖掉rdb的数据
-
-
持久化配置修改
-
在配置文件
-
6379.conf
-
rdb持久化配置
-
查找save
-
-
分别表示,在900秒内有一个键做变动做一次快照,在300秒内有10个键做变动则做一次快照,在60秒内,有一万个键做变动就做一次快照。满足以上任意一个条件均作快照。
-
-
查找rdb
-
-
显示快照文件名称
-

-
在下方指明快照文件位置。
-

-
在附近可以看到该选项决定快照是否压缩,默认开启。
-
-
-
aof持久化配置
-
查找append
-
-
三种同步方式:
-
always,每次发生变化立马写入磁盘
-
everysec :每秒做一次快照。
-
no:不做同步,交给其他程序决定如何同步。
-

-
第一行决定了aof模式是否开启
-
第二行决定了aof文件的名称
-
-
aof运作机制的原因可能会造成冗余命令,在命令行输入该语句
-
bgrewriteaof
-
重写操作可以在特定条件下自动去除冗余的命令
-
-
需要注意采用该策略需要将
-
no-appendfsync-on-rewrite no 设置位no
-
该语句表示新写操作不同步
-

-
-
aof比上次重写增长的比例,100为两倍
-
-
-
性能管理
-
redis-cli
-
info memory
-
查看redis程序使用内存的大小。
-
-
回收策略
-
配置文件
-
-
命令行
-
expire 键 过期时间
-
-
默认回收最近使用少的键而不是存在时间最久的键
-
-
-
-
密码管理
-
永久设置
-
查找requirepass
-
默认注释,后面可以跟密码
-
-
-
临时设置
-
命令行
-
config set requirepass 密码
-
设置密码后会造成原有数据丢失
-
-
-
连接方法
-
redis-cli -a 密码
-
命令行
-
auth 密码
-
-
redis-cli -a 密码 shutdown
-
-
-
-
-
-
-
-
-
相关文章:
redis介绍与布署
redis remote dictionary server(远程字典服务器) 是一个开源的,使用c语言编写的非关系型数据库,支持内存运行并持久化,采用key-value的存储形式。 单进程模型意味着可以在一台服务器上启动多个redis进程,…...
PMON的解读和开发
提示:龙芯2K1000PMON相关记录 文章目录 1 PMON的发展和编译环境PMONPMON2000 2 PMON2000的目录结构3 Targets目录的组成4 PMON编译环境的建立5 PMON2000的框架6 异常向量表7 Pmon的空间分配8 PMON的汇编部分(starto.S或sbdreset.S)的解读Start.SC代码部分dbginit 9 …...
初识c++(构造函数,析构函数,拷贝构造函数,赋值运算符重载)
一、类的默认函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。 #include<iostream> using namespace std; class Date { public:Date(){_year 1;_month 1;_day 1;cout << _year << "/" <&…...
CANoe:为什么两个VLAN接口不能设置同一个网络的IP地址呢?
经常玩CANoe的人应该配置过TCP/IP Stack中网络节点的网卡信息,基本的信息包含:MAC地址、IP地址、子网掩码、默认网关、MTU值、IPv6地址。 如果你想让发送出去的报文携带VLAN tag,可以在网卡上添加VLAN tag信息。 此时你就能得到两个新的网卡V…...
SpringBoot新手快速入门系列教程七:基于一个低配centoos服务器,如何通过宝塔面板部署一个SpringBoot项目
1,如何打包一个项目 通过IDEA自带的命令行,执行 ./gradlew clean build 2,检查生成的JAR文件 进入 build/libs 目录,你应该会看到一个类似 helloredis-0.0.1-SNAPSHOT.jar 的文件。 3:运行生成的JAR文件 你可以在…...
性能测试的流程(企业真实流程详解)(二)
性能测试的流程 1.需求分析以及需求确定(指标值,场景,环境,人员) 一般提出需求的人员有:客户,产品经理,项目组领导等 2.性能测试计划和方案制定 基准测试: 负觋测试: 压力测试: 稳定性测试: 其他:配置测试…...
使用sklearn的基本流程
scikit-learn,通常简称为 sklearn,是一个开源的Python库,是基于 Python 编程语言的一个非常流行的机器学习库。它建立在 NumPy 和 SciPy 这两个科学计算库之上,并与 Matplotlib 配合使用,为数据预处理、模型训练、评估…...
力扣题解(乘积为正数的最长子数组长度)
1567. 乘积为正数的最长子数组长度 已解答 中等 给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 本题要求乘积为正数,而整…...
PPTP、L2TP、IPSec、IPS 有什么区别?
随着互联网的发展,保护网络通信的安全越来越重要。PPTP、L2TP、IPSec、IPS是常见的网络安全协议和技术,在保护网络通信安全方面发挥着不同的作用和特点。下面介绍PPTP、L2TP、IPSec、IPS之间的区别。 点对点隧道协议(PPTP)是一种用…...
SpringBoot注解--11--@JSONField @JsonProperty
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一个问题:后端实体类isXXX开头的属性,传到前端后自动去掉is解决方法: JsonProperty和JSONField1.简介2.注解的区别2.1 底层框架不…...
C语言 | Leetcode C语言题解之第221题最大正方形
题目: 题解: int maximalSquare(char** matrix, int matrixSize, int* matrixColSize){int dp[301][301]{0};int wid0;if(matrixSize0&&matrixColSize[0]0){return 0;}for(int i0;i<matrixSize;i){for(int j0;j<matrixColSize[0];j){if(m…...
AI数据服务如何驱使AI商业化,实现在各行业落地融合
AI技术经历数十载的发展,正在加速向各行各业渗透。近年来深度学习加速了人工智能技术的商业化落地的同时,也带来了大量AI算法训练需求,推动AI数据服务市场的快速增长。作为AI快速发展的“基石”,AI数据服务AI数据服务如何驱使AI在…...
户用光伏项目开发流程
1、收集业主信息 管理业主基本信息,包括但不限于联系方式、地址、房屋信息等。 2、业主开卡 每户都需要办理银行卡,用于电费结算和划转。 3、合同签约 业主开卡完成之后,平台方发起签约(支持线上签约),…...
C++ 函数返回值是引用类型使用场景
目录 1、希望返回函数内部的局部静态变量或全局变量 2、希望通过函数返回一个对象的成员变量 3、希望实现链式操作 4、避免对象的拷贝 5、需要注意的事项 在C中,函数的返回值可以是引用类型的情况主要有以下几种: 1、希望返回函数内部的局部静态变…...
CUDA原子操作
代码 #include <cuda_runtime.h> #include <stdio.h>__global__ void atomicAddAndGet(int *result, int *valueToAdd) {// 原子加法int addedValue atomicAdd(result, *valueToAdd);// 通过原子操作后读取值,确保是加法后的值addedValue *valueToAd…...
08.C2W3.Auto-complete and Language Models
往期文章请点这里 目录 N-Grams: OverviewN-grams and ProbabilitiesN-gramsSequence notationUnigram probabilityBigram probabilityTrigram ProbabilityN -gram probabilityQuiz Sequence ProbabilitiesProbability of a sequenceSequence probability shortcomingsApproxi…...
【linux】log 保存和过滤
log 保存 ./run.sh 2>&1 | tee -a /home/name/log.txt log 过滤 import os import re# Expanded regular expression to match a wider range of error patterns error_patterns re.compile(# r(error|exception|traceback|fail|failed|fatal|critical|warn|warning…...
GeoTrust ——适合企业使用的SSL证书!
GeoTrust是一家全球知名的数字证书颁发机构(CA),其提供的SSL证书非常适合企业使用。GeoTrust的SSL证书为企业带来了多重优势,不仅在验证级别、加密强度、兼容性、客户服务等方面表现出色,而且其高性价比和灵活的证书选…...
Kubelet 认证
当我们执行kubectl exec -it pod [podName] sh命令时,apiserver会向kubelet发起API请求。也就是说,kubelet会提供HTTP服务,而为了安全,kubelet必须提供HTTPS服务,且还要提供一定的认证与授权机制,防止任何知…...
aws slb
NLB 目标组 Target is in an Availability Zone that is not enabled for the load balancer 解决: https://docs.aws.amazon.com/zh_cn/elasticloadbalancing/latest/network/load-balancer-troubleshooting.html 负载均衡器添加 后端EC2 所在的vpc网段即可。…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...

