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

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++(构造函数,析构函数,拷贝构造函数,赋值运算符重载)

一、类的默认函数 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数称为默认成员函数。 #include<iostream> using namespace std; class Date { public:Date(){_year 1;_month 1;_day 1;cout << _year << "/" <&…...

CANoe:为什么两个VLAN接口不能设置同一个网络的IP地址呢?

经常玩CANoe的人应该配置过TCP/IP Stack中网络节点的网卡信息&#xff0c;基本的信息包含&#xff1a;MAC地址、IP地址、子网掩码、默认网关、MTU值、IPv6地址。 如果你想让发送出去的报文携带VLAN tag&#xff0c;可以在网卡上添加VLAN tag信息。 此时你就能得到两个新的网卡V…...

SpringBoot新手快速入门系列教程七:基于一个低配centoos服务器,如何通过宝塔面板部署一个SpringBoot项目

1&#xff0c;如何打包一个项目 通过IDEA自带的命令行&#xff0c;执行 ./gradlew clean build 2&#xff0c;检查生成的JAR文件 进入 build/libs 目录&#xff0c;你应该会看到一个类似 helloredis-0.0.1-SNAPSHOT.jar 的文件。 3&#xff1a;运行生成的JAR文件 你可以在…...

性能测试的流程(企业真实流程详解)(二)

性能测试的流程 1.需求分析以及需求确定(指标值&#xff0c;场景&#xff0c;环境&#xff0c;人员) 一般提出需求的人员有&#xff1a;客户&#xff0c;产品经理&#xff0c;项目组领导等 2.性能测试计划和方案制定 基准测试: 负觋测试: 压力测试: 稳定性测试: 其他:配置测试…...

使用sklearn的基本流程

scikit-learn&#xff0c;通常简称为 sklearn&#xff0c;是一个开源的Python库&#xff0c;是基于 Python 编程语言的一个非常流行的机器学习库。它建立在 NumPy 和 SciPy 这两个科学计算库之上&#xff0c;并与 Matplotlib 配合使用&#xff0c;为数据预处理、模型训练、评估…...

力扣题解(乘积为正数的最长子数组长度)

1567. 乘积为正数的最长子数组长度 已解答 中等 给你一个整数数组 nums &#xff0c;请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 本题要求乘积为正数&#xff0c;而整…...

PPTP、L2TP、IPSec、IPS 有什么区别?

随着互联网的发展&#xff0c;保护网络通信的安全越来越重要。PPTP、L2TP、IPSec、IPS是常见的网络安全协议和技术&#xff0c;在保护网络通信安全方面发挥着不同的作用和特点。下面介绍PPTP、L2TP、IPSec、IPS之间的区别。 点对点隧道协议&#xff08;PPTP&#xff09;是一种用…...

SpringBoot注解--11--@JSONField @JsonProperty

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一个问题&#xff1a;后端实体类isXXX开头的属性&#xff0c;传到前端后自动去掉is解决方法&#xff1a; JsonProperty和JSONField1.简介2.注解的区别2.1 底层框架不…...

C语言 | Leetcode C语言题解之第221题最大正方形

题目&#xff1a; 题解&#xff1a; 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技术经历数十载的发展&#xff0c;正在加速向各行各业渗透。近年来深度学习加速了人工智能技术的商业化落地的同时&#xff0c;也带来了大量AI算法训练需求&#xff0c;推动AI数据服务市场的快速增长。作为AI快速发展的“基石”&#xff0c;AI数据服务AI数据服务如何驱使AI在…...

户用光伏项目开发流程

1、收集业主信息 管理业主基本信息&#xff0c;包括但不限于联系方式、地址、房屋信息等。 2、业主开卡 每户都需要办理银行卡&#xff0c;用于电费结算和划转。 3、合同签约 业主开卡完成之后&#xff0c;平台方发起签约&#xff08;支持线上签约&#xff09;&#xff0c…...

C++ 函数返回值是引用类型使用场景

目录 1、希望返回函数内部的局部静态变量或全局变量 2、希望通过函数返回一个对象的成员变量 3、希望实现链式操作 4、避免对象的拷贝 5、需要注意的事项 在C中&#xff0c;函数的返回值可以是引用类型的情况主要有以下几种&#xff1a; 1、希望返回函数内部的局部静态变…...

CUDA原子操作

代码 #include <cuda_runtime.h> #include <stdio.h>__global__ void atomicAddAndGet(int *result, int *valueToAdd) {// 原子加法int addedValue atomicAdd(result, *valueToAdd);// 通过原子操作后读取值&#xff0c;确保是加法后的值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是一家全球知名的数字证书颁发机构&#xff08;CA&#xff09;&#xff0c;其提供的SSL证书非常适合企业使用。GeoTrust的SSL证书为企业带来了多重优势&#xff0c;不仅在验证级别、加密强度、兼容性、客户服务等方面表现出色&#xff0c;而且其高性价比和灵活的证书选…...

Kubelet 认证

当我们执行kubectl exec -it pod [podName] sh命令时&#xff0c;apiserver会向kubelet发起API请求。也就是说&#xff0c;kubelet会提供HTTP服务&#xff0c;而为了安全&#xff0c;kubelet必须提供HTTPS服务&#xff0c;且还要提供一定的认证与授权机制&#xff0c;防止任何知…...

aws slb

NLB 目标组 Target is in an Availability Zone that is not enabled for the load balancer 解决&#xff1a; https://docs.aws.amazon.com/zh_cn/elasticloadbalancing/latest/network/load-balancer-troubleshooting.html 负载均衡器添加 后端EC2 所在的vpc网段即可。…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!

【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...