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

REDIS2.0

string list hash

set 无序集合

声明一个key,键里面的值是元素,元素的类型是string

元素的值是唯一的,不能重复

多个集合类型之间可以进行并集,交集,集查的运算

sadd test1 a b c c d :添加5个元素(但它不显示重复元素所以结果为4)

smembers test1:查看元素

scard test1 :查看元素个数

srandmember test1:随机返回该集合中的一个元素

spop test1:随机移除一个元素

smove test1 test2 a:将test1中的元素a,移到test2 中

scorted set zest 有序集合

1、声明一个key,key里面有元素,元素可以有多个,类型也是string,元素都是唯一的不能重复
2、每个元素都会关联double类型的分数,表示的是权重,元素可以通过权重的大小进行排序,元素的权重可以享用

zadd test3 1 one 2 two 3 three:创建有序集合,1、2、3是权重,one,two,three才是值

zrange test3 0 -1 withscores
返回结果会显示权重,不加withscores就只显示值

zrank test3 one:one在集合当中的索引下标的位置

zcount test3 1 2:统计test3有序集合中,权重>=1,<=2的个数

redis的持久化:

在redis当中,高可用的技术包括持久化,主从复制,哨兵模式,集群

1、持久化是最简单的高可用方式,作用就是备份数据,即 将数据保存到硬盘,防止进程退出导致数据丢失

redis的持久化方式:

1、RDB模式持久化····················>人工或者是定时的把内存当中的数据保存到磁盘,这是一种冷备份的方式(备份的时候不用关闭服务,恢复到时候需要关闭)默认的持久化方式

2、AOF模式持久化···················> 类似于mysql的二进制日志,把所有的redis的操作记录在二进制日志当中,恢复到时候从二进制日志的内容进行回复,全热备份,服务要重启

  • AOF的持久化的实时性更好,进程如果意外丢失,恢复的数据是最多的,AOF是主流的持久化方式

  • RDB持久化:快照持久化,文件的后缀名是 .rdb,redis每次重启时都会读取这个rdb文件进行恢复

save和bgsave

在这里插入图片描述

save可以在配置文件声明,也可以手动

bgsave:向主进程发送一个信号,主进程fork(后台)新建一个子进程,在fork的过程中,主进程阻塞,创建完子进程之后,阻塞解除,子进程来创建rdb文件

在这里插入图片描述

vim /etc/redis/redis.cnf

307gg

342gg

340gg:是否开启rdb文件的压缩

cp -a dump.rdb /opt/

rm -rf dump.rdb

cp -a /opt/dump.rdb /var/lib/redis

AOF持久化:一旦开启AOF持久化,redis会默认选择aof作为持久化方式,并且立刻读取二进制文件,开启AOF,一定要在初始化时开启
在这里插入图片描述

aof-load-truncated yes

当发现AOF文件被截断时,如果是yes,redis在重启时发现被截断,redis会尽可能的恢复数据,继续运行

no:如果发现AOF文件被截断,redis会拒绝启动

截断:写入过程中出现异常,内存当中有,但是没有完整写入到磁盘

9:10 -9:20
9:15-9:18

AOF的rewrite机制:重写
重写表示的是压缩,当这个二进制日志文件内容越来越多,文件越来越大,于是就有了重写的功能对二进制文件进行压缩

20G===18G

bgrewriteaof进程来进行处理
redis-clibgrewriteaof

rdb和aof之间的优缺点:
1、rdb的文件体积比aof小,适合全量备份,速度也比aof快
2、rdb不能实时持久化,数据如此重要,不能够丢失
3、RDB的兼容性比AOF要差,新老版本之间不能兼容

生产中:redis的版本一定要一致

  • APF的优点:实时持久化的策略,兼容性也好,文本格式保存的命令
  • 缺点:文件比较大,恢复速度比较慢,对磁盘的I/O性能要求也比较高

redis的性能管理

1、查看redis内存使用的情况:

used_memory:871704 redis数据占用的内存

userd_memory_rss:redis向操作系统申请的内存

userd_memory_peak:redis使用系统内存的峰值

root@redis1:/var/lib/redis# redis-cli info memory | grep ratio allocator_frag_ratio:1.23
分配器的碎片比例,分配器的碎片越多,浪费的内存越多,这个值越小越好

allocator_rss_ratio:2.76
分配器使用多少系统的内存

rss_overhead_ratio:2.74
RSS的开销比例,占用系统的物理内存的额外开销,这个值越低越好,越接近0,redis的实际的使用比就越高。

mem_fragmentation_ratio:13.92
内存的碎皮比例,内存碎片,系统分配之后,但是不能被利用的内存。越低,内存的利用率越高

配置redis的初始化,必须要给redis的内存设置阈值,不设置阈值,只要有需要,redis会占满整个内存,而且会继续占用交换分区的空间★★★★★★

设置阈值后,不会使用交换分区了,到达阈值,系统会自动回收生命周期不足的key

maxmemory-policy noeviction
#设置当达到最大阈值时,如何对键值进行回收,默认情况下是禁止回收的

volatile-lru:根据算法lru从过期时间的数据集合当中淘汰键值,主要是针对设置了ttl的键值对

volatile-ttl:根据算法,淘汰即将过期的数据(也是针对设置生命周期的数据)


allkeys-lru:根据lru算法,淘汰最近很少使用的数据

allkeys-random:淘汰任意的数据

一直删到小于或者等于内存阈值,才不会继续删除

redis的雪崩和redis的击穿,radis的穿透

缓存雪崩:整个作为数据库缓存的键值对,全部失效,redis没有办法处理缓存,所有的请求全部集中到数据库上,数据库很快就崩溃

1、redis集群大面积故障

2.所有的缓存键值对全部被删除(作为数据库缓存的键值对上不会设置生命周期的)

3、大量的redis请求失败,所有的请求直接到了数据库

缓存击穿:热点数据的缓存失效,大量的热点请求全部转发到了数据库

会导致数据库的性能大幅下降

热点数据设置成永不过期

1、我通过mysql的慢查询日志,发现了sql执行的速度突然大幅下降

2、查询redis,发现的缓存的键值对消失了

3、我没有redis的密码,专门负责数据库的人处理

redis穿透:缓存的键值对和数据库当中都没有数据,但是依然有客户端不断在请求,黑客利用漏洞,把大量请求绕过redis,去压垮数据库

相关文章:

REDIS2.0

string list hash set 无序集合 声明一个key&#xff0c;键里面的值是元素&#xff0c;元素的类型是string 元素的值是唯一的&#xff0c;不能重复 多个集合类型之间可以进行并集&#xff0c;交集&#xff0c;集查的运算 sadd test1 a b c c d &#xff1a;添加5个元素&am…...

算法练习——模拟题

前言&#xff1a;模拟题的特点在于没有什么固定的技巧&#xff0c;完全考验自己的代码能力&#xff0c;因此有助于提升自己的代码水平。如果说一定有什么技巧的话&#xff0c;那就是有的模拟题能够通过找规律来简化算法。 一&#xff1a;替换所有问号 题目要求&#xff1a; 解…...

京东供应链创新与实践:应用数据驱动的库存选品和调拨算法提升履约效率

2024 年度总结系列 2024 年 10 月&#xff0c;京东零售供应链技术团队凭借其在库存选品与调拨技术上的创新与实践&#xff0c;荣获运筹与管理学领域的国际顶级奖项 Daniel H. Wagner Prize。本文为您介绍获奖背后的供应链技术创新和落地应用。 00 摘要 在电商行业中&#x…...

pytorch张量的fill_方法介绍

在 PyTorch 中&#xff0c;fill_ 是一个张量的原地操作方法&#xff0c;用于将张量中的所有元素填充为指定的值。 方法签名 Tensor.fill_(value)参数 value (float or int): 要填充到张量中的值。 返回值 返回调用该方法的张量本身&#xff0c;且是经过修改后的张量。 特…...

WAP短信格式解析及在Linux下用C语言实现

WAP短信格式解析及在Linux下用C语言实现 一、引言二、WAP短信格式概述三、WAP短信头的内容四、UDHI与WAP短信体的关系五、在Linux下用C语言解析WAP短信头及短信体内容一、引言 在移动通信领域,短信作为一种古老却稳定的通信方式,一直扮演着重要的角色。随着技术的发展,短信…...

Linux的诞生与发展、体系结构与发行版本

Linux作为一个开源操作系统&#xff0c;在过去几十年中一直扮演着至关重要的角色。它不仅深刻影响了服务器、桌面和移动设备&#xff0c;还成为了开源运动的重要组成部分。本文将介绍Linux的历史、体系结构、以及主要的发行版&#xff0c;帮助你更好地了解Linux的方方面面。 一…...

为什么Mysql用B+树作为索引

首先&#xff0c;能作为索引的数据结构有很多&#xff0c;例如数组、链表、二叉树 数据和索引都是存储在磁盘里的。 我们通过索引来查询数据时&#xff0c;先从磁盘读取索引到内存&#xff0c;再通过索引从磁盘中找到某行数据&#xff0c;然后读入到内存。 要设计一个适合 MySQ…...

探索 DC-SDK:强大的 3D 地图开发框架

在现代 Web 开发中&#xff0c;地理信息系统&#xff08;GIS&#xff09;和 3D 地图可视化变得越来越重要。dc-sdk 是一个基于 Cesium 的开源 WebGL 地图开发框架&#xff0c;它提供了丰富的地图可视化功能和简单易用的 API&#xff0c;使开发者能够轻松地在 Web 应用中集成 3D…...

C#高级篇 反射和属性详解【代码之美系列】

&#x1f380;&#x1f380;&#x1f380;代码之美系列目录&#x1f380;&#x1f380;&#x1f380; 一、C# 命名规则规范 二、C# 代码约定规范 三、C# 参数类型约束 四、浅析 B/S 应用程序体系结构原则 五、浅析 C# Async 和 Await 六、浅析 ASP.NET Core SignalR 双工通信 …...

算法 class 005 (对数器C语言实现)

对数器的概念&#xff1a; 用来测试你的算法是否正确。 怎么做呢&#xff1f; 1&#xff1a;比如&#xff0c;写个冒泡排序&#xff0c;作为对比的对象 2&#xff1a;生成一个随机数 数组&#xff0c;用来测试 3&#xff1a;用冒泡排序和你想要验证的那个排序算法&#xff0c;同…...

windows系统安装完Anaconda之后怎么激活自己的虚拟环境并打开jupyter

1.在win主菜单中找到Anaconda安装文件夹并打开终端 文件夹内有所有安装后的Anaconda的应用软件和终端窗口启动窗口 点击Anaconda Prompt&#xff08;Anaconda&#xff09;就会打开类似cmd的命令终端窗口&#xff0c;默认打开的路径是用户名下的路径 2.激活虚拟环境 使用命令…...

leetcode 面试经典 150 题:矩阵置零

链接矩阵置零题序号73题型二维数组解题方法标记数组法难度中等熟练度✅✅✅✅ 题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1]…...

SQL中的TRIM用法

TRIM 是 SQL 中用于去除字符串两端&#xff08;左侧和右侧&#xff09;的空格或特定字符的函数。这个函数常用于清理数据中的无效空白字符&#xff0c;尤其是在从外部系统导入数据时&#xff0c;常常会遇到数据两端有不必要的空格&#xff0c;使用 TRIM 可以去除这些多余的字符…...

Git Flow 工作流:保障修改不破坏主功能的完整指南20241230

Git Flow 工作流&#xff1a;保障修改不破坏主功能的完整指南 引言 在团队协作和个人项目中&#xff0c;Git Flow 是一种可靠的分支管理策略。通过清晰的分工和规范的流程&#xff0c;它能有效保障代码改动的安全性&#xff0c;避免修改破坏主功能&#xff0c;同时提高开发效…...

CentOS 7安装Docker详细教程

本文以 CentOS7.8 为例安装 Docker 26.1.4 、Docker Compose、以及 Docker 镜像仓库。 1.安装Docker社区版 1.1 安装准备 1.1.1 检查系统环境 Docker 不支持32位的 CentOS 7 系统&#xff0c;要求系统内核版本为3.10 以上&#xff0c;可以通过命令 uname -r 来查看当前系统…...

如何在 Ubuntu 22.04 上安装 Varnish HTTP 教程

简介 在本教程中&#xff0c;我们将学习如何在 Ubuntu 22.04 服务器上安装和配置 Varnish HTTP。 Varnish 是一款高性能的 HTTP 加速器&#xff0c;旨在提高内容密集型动态网站的速度。它通过将网页缓存在内存中来工作&#xff0c;从而减少 Web 服务器的负载&#xff0c;并显…...

网络安全概念详解

人们对网络安全工程师的有哪些误会&#xff1f; “你们搞安全的盗个微信号/ QQ号应该很简单吧&#xff1f;” 说起来&#xff0c;我们经常说安全、安全&#xff0c;网络安全到底是什么&#xff1f; 一、什么是网络安全&#xff1f; “网络安全是指网络系统的硬件、软件及其…...

【前端】-音乐播放器(源代码和结构讲解,大家可以将自己喜欢的歌曲添加到数据当中,js实现页面动态显示音乐)

前言&#xff1a;音乐播放器是前端开发中的一个经典项目&#xff0c;通过它可以掌握很多核心技术&#xff0c;如音频处理、DOM操作、事件监听、动画效果等。这个项目不仅能提升前端开发的技能&#xff0c;还能让开发者深入理解JavaScript与HTML的协同作用。 页面展示&#xff1…...

PawSQL性能巡检平台 (3) - 慢查询采集和优化

在数据库运维管理中&#xff0c;慢查询一直是影响系统性能的重要因素。本文将详细介绍PawSQL数据库性能巡检平台在慢查询管理和优化方面的功能特性&#xff0c;帮助数据库管理员更好地应对性能挑战。 一、PawSQL巡检平台慢查询管理概述 PawSQL平台提供了全面的慢查询管理功能&…...

在docker中对MySQL快速部署与初始数据

1.准备工作 将已经准备好的Dockerfile文件与数据库初始化脚本init.sql放到 /usr/local目录中。 Dockerfile文件内容&#xff1a; FROM mysql:5.7 WORKDIR /docker-entrypoint-initdb.d ADD init.sql . FROM 代表来自mysql5.7的镜像&#xff0c;作为基准镜像。 WORKDIR设置工…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙&#xff08;HarmonyOS5&#xff09;中集成百度地图&#xff0c;可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API&#xff0c;可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​&#xff1a;下载安装 ​​De…...