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,去压垮数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945644.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【源码 导入教程 文档 讲解】基于springboot校园新闻管理系统源码和论文

可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C、python、数据可视化、大数据、文案 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xf…

分布式项目___某污水处理项目

一.分布式项目___污水处理项目 项目地址:https://gitee.com/yanyigege/collaborative-water-springboot.git ​ 1.项目背景 总公司在全国各地有处理污水的项目部,各项目部处理自己的污水,总部需要监控各地分项目部每天处理污水的原料用量,掌握各分部的污水处理情况 ​ 2.功…

小程序基础 —— 08 文件和目录结构

文件和目录结构 一个完整的小程序项目由两部分组成&#xff1a;主体文件、页面文件&#xff1a; 主体文件&#xff1a;全局文件&#xff0c;能够作用于整个小程序&#xff0c;影响小程序的每个页面&#xff0c;主体文件必须放到项目的根目录下&#xff1b; 主体文件由三部分组…

计算机网络 (7)物理层下面的传输媒体

一、定义与位置 物理层是计算机网络体系结构的最低层&#xff0c;它位于传输媒体&#xff08;传输介质&#xff09;之上&#xff0c;主要作用是为数据链路层提供一个原始比特流的物理连接。这里的“比特流”是指数据以一个个0或1的二进制代码形式表示。物理层并不是特指某种传输…

基于FPGA的2ASK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 2ASK调制解调 2.2 帧同步 3.Verilog核心程序 4.完整算法代码文件获得 1.算法仿真效果 vivado2019.2仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 设置SNR8db 设置SNR20db 整体波形效果&…

各种 Amazon EBS 卷类型

Amazon Elastic Block Store&#xff08;EBS&#xff09;是 Amazon Web Services&#xff08;AWS&#xff09;提供的一项持久性块存储服务&#xff0c;它允许用户为 EC2 实例提供高效、可靠的存储。EBS 卷是 AWS 云环境中存储数据的基础组件&#xff0c;广泛应用于数据库、文件…

nvidia_gpu_exporter 显卡监控

导入 grafana/dashboard.json https://github.com/utkuozdemir/nvidia_gpu_exporter/blob/master/grafana/dashboard.json参考 nvidia_gpu_exporter

jvm排查问题-实践追踪问题 与思路--堆内堆外内存泄漏排查方针

概述 排查问题的一般思路是:现象 ——> 直接原因 ——>根本原因。 从问题现象出发,可以分为 应用逻辑问题、资源使用问题、虚拟机异常: 应用逻辑可能导致报错增加、死锁、程序退出等;资源问题主要集中在CPU上升和内存上升(OOM Kill);虚拟机问题通常包括GC问题、进…

CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)

文章目录 1.Introduction1.1 What software engineering is and why it is important&#xff08;什么是软件工程&#xff0c;为什么它很重要&#xff09;1.1 We can’t run the modern world without software&#xff08;我们的世界离不开软件&#xff09;1.1.1 What is Soft…

【Java数据结构】LinkedList与链表

认识LinkedList LinkedList就是一个链表&#xff0c;它也是实现List接口的一个类。LinkedList就是通过next引用将所有的结点链接起来&#xff0c;所以不需要数组。LinkedList也是以泛型的方法实现的&#xff0c;所以使用这个类都需要实例化对象。 链表分为很多种&#xff0c;比…

从0入门自主空中机器人-2-2【无人机硬件选型-PX4篇】

1. 常用资料以及官方网站 无人机飞控PX4用户使用手册&#xff08;无人机基本设置、地面站使用教程、软硬件搭建等&#xff09;&#xff1a;https://docs.px4.io/main/en/ PX4固件开源地址&#xff1a;https://github.com/PX4/PX4-Autopilot 飞控硬件、数传模块、GPS、分电板等…

详解MySQL在Windows上的安装

目录 查看电脑上是否安装了MySQL 下载安装MySQL 打开MySQL官网&#xff0c;找到DOWNLOADS 然后往下翻&#xff0c;找到MySQL Community(GPL) Downloads>> 然后找到MySQL Community Server 然后下载&#xff0c;选择No thanks,just start my download. 然后双击进行…

【git】(一)在vscode上使用git进行版本控制(结合指令、含示例)

vscode中的git插件将git操作从git指令简化到简单的图形界面操作&#xff0c;不用再去记忆git指令&#xff0c;操作简单直观了很多。第一次使用时&#xff0c;为了加深理解&#xff0c;我将一些基本操作和该操作底层使用的命令结合起来&#xff0c;并包含实例&#xff0c;方便学…

安卓入门二 Kotlin基础

Kotlin Kotlin的历史 Kotlin由Jet Brains公司开发设计&#xff0c;2011年公布第一版&#xff0c;2012年开源。 2016年发布1.0正式版&#xff0c;并且Jet Brains在IDEA加入对Kotlin的支持&#xff0c;安卓自此又有新的选择。 2019年谷歌宣布Kotlin成为安卓第一开发语言&#x…

【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算

【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算 一、简介 在MATLAB中计算Sobol二阶效应指数通常涉及到全局敏感性分析&#xff08;Global Sensitivity Analysis, GSA&#xff09;&#xff0c;其中Sobol方法是一种流行的技术&#xff0c;用于评估模型输入…

线段树例题题解

卫星覆盖&#xff08;NOI1997&#xff09; 题面&#xff1a; SERCOI&#xff08;Space-Earth Resource Cover-Observe lnstitute&#xff09; 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧&#xff0c;P帧&#xff0c;B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…

vue 组件库二次封装

vue 组件库二次封装 需求背景&#xff1a;项目使用arco-design组件库&#xff0c;ui 界面对于单选有统一的界面&#xff0c; 对于封装组件有一个大原则就是我们应该尽量保持原有组件的接口&#xff0c;除了我们需要封装的功能外&#xff0c;我们不应该改变原有组件的接口&#…

Kafka 幂等性与事务

文章目录 幂等性实现机制配置使用局限性 事务使用场景配置使用实现机制事务过程事务初始化事务开始事务提交事务取消事务消费 幂等性 Producer 无论向 Broker 发送多少次重复的数据&#xff0c;Broker 端只会持久化一条&#xff0c;保证数据不丢失且不重复。 实现机制 通过引…

LVS 负载均衡原理 | 配置示例

注&#xff1a;本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时&#xff0c;可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写&#xff0c;翻…