【Redis】数据类型、事务执行、内存淘汰策略

目录

数据类型

 Redis事务执行步骤

步骤: 

redis内存淘汰策略

设置内存淘汰策略

1.设置配置文件

2.通过命令设置


数据类型

官网解释

Understand Redis data types | Redis

首先,Redis 的所有键都是字符串,常用的数据类型有 5 种:String 字符串类型、List 列表类型、Hash 哈希表类型、Set 集合类型、Sorted Set 有序集合类型

底层实现:

 Redis事务执行步骤

事务相关命令:

MULTI :开启事务,redis会将后续的命令逐个放入队列中,然后使用EXEC命令来原子化执行这个命令系列。

EXEC:执行事务中的所有操作命令。

DISCARD:取消事务,放弃执行事务块中的所有命令。

WATCH:监视一个或多个key,如果事务在执行前,这个key(或多个key)被其他命令修改,则事务被中断,不会执行事务中的任何命令。

UNWATCH:取消WATCH对所有key的监视。

步骤: 
  • 开启:以MULTI开始一个事务

  • 入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面

  • 执行:由EXEC命令触发事务

当一个客户端切换到事务状态之后, 服务器会根据这个客户端发来的不同命令执行不同的操作:

  • 如果客户端发送的命令为 EXEC 、 DISCARD 、 WATCH 、 MULTI 四个命令的其中一个, 那么服务器立即执行这个命令。
  • 与此相反, 如果客户端发送的命令是 EXEC 、 DISCARD 、 WATCH 、 MULTI 四个命令以外的其他命令, 那么服务器并不立即执行这个命令, 而是将这个命令放入一个事务队列里面, 然后向客户端返回 QUEUED 回复。

 

注:Redis不支持事务回滚 

redis内存淘汰策略

早期版本的 Redis 有以下 6 种淘汰机制(也叫做内存淘汰策略):

  1. noeviction:不淘汰任何数据,当内存不足时,新增操作会报错,Redis 默认内存淘汰策略;
  2. allkeys-lru:淘汰整个键值中最久未使用的键值;
  3. allkeys-random:随机淘汰任意键值;
  4. volatile-lru:淘汰所有设置了过期时间的键值中最久未使用的键值;
  5. volatile-random:随机淘汰设置了过期时间的任意键值;
  6. volatile-ttl:优先淘汰更早过期的键值。

在 Redis 4.0 版本中又新增了 2 种淘汰机制:

  1. volatile-lfu:淘汰所有设置了过期时间的键值中,最少使用的键值;
  2. allkeys-lfu:淘汰整个键值中最少使用的键值。

其中 allkeys-xxx 表示从所有的键值中淘汰数据,而 volatile-xxx 表示从设置了过期键的键值中淘汰数据。 所以,现在 Redis 的版本中有 8 种内存淘汰策略。

设置内存淘汰策略

Redis 内存淘汰策略有两种设置方式:

  1. 修改 redis 配置文件设置内存淘汰策略;
  2. 连接 redis 服务器,通过命令设置内存淘汰策略。

具体设置执行如下。

1.设置配置文件

通过 redis 的配置文件 redis.conf 来设置内存淘汰策略:

maxmemory-policy allkeys-lru
2.通过命令设置

先连接到 redis 服务器,然后通过命令修改淘汰策略:

127.0.0.1:6379> config set maxmemory-policy allkeys-lru

注意事项:通过命令设置内存淘汰策略,在 redis 重启之后会失效,所以最好是在配置文件中设置内存淘汰策略。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

docker-compose mysql

使用docker-compose 部署 MySQL(所有版本通用) 一、拉取MySQL镜像 我这里使用的是MySQL8.0.18,可以自行选择需要的版本。 docker pull mysql:8.0.18二、创建挂载目录 mkdir -p /data/mysql8/log mkdir -p /data/mysql8/data mkdir -p /dat…

enscan自动化主域名信息收集

enscan下载 Releases wgpsec/ENScan_GO (github.com) 能查的分类 实操: 首先打开linux 的虚拟机、 然后把下面这个粘贴到虚拟机中 解压后打开命令行 初始化 ./enscan-0.0.16-linux-amd64 -v 命令参数如下 oppo信息收集 运行下面代码时 先去配置文件把coo…

47 vue 常见的几种模型视图不同步的问题

前言 这里主要是来看一下 关于 vue 中的一些场景下面 可能会出现 模型和视图 不同步更新的情况 然后 这种情况主要是 vue 中的对象 属性没有响应式的 setter, getter 然后 我们这里就来看一下 大多数的情况下的一个场景, 和一些处理方式 当然 处理方式主要是基于 Vue.set, …

HTML CSS 简单小实例

一、登录注册页面 1.需求文档内容如下: 1.登录 用户名: 密码: 注册按钮跳转注册界面 忘记密码按钮跳转忘记密码界面 登录按钮跳转个人页面 2.注册 用户名:3-8字符(字母开头) 密码:6-12字符&…

Elasticsearch 和 Kibana 8.13:简化 kNN 和改进查询并行化

作者:Gilad Gal, Tyler Perkins, Srikanth Manvi, Aris Papadopoulos, Trevor Blackford 在 8.13 版本中,Elastic 引入了向量搜索的重大增强,并将 Cohere 嵌入集成到其统一 inference API 中。这些更新简化了将大型语言模型(LLM&a…

2024年北京事业单位报名照片要求,注意格式

2024年北京事业单位报名照片要求,注意格式

nacos的各种类型的配置文件 yml 、json、 Properties、 text 等文件类型 发生变化怎么热更新,实现实时监听nacos配置文件变化

本文用的是 Nacos作为配置中心注册监听器方法 实现热更新 nacos 配置文件 从而不用重启项目 依赖、工具类 这边就不写了 因为项目用的是 Json 类型的配置文件 所以下文 主要是对json文件进行实现 别的文件大同小异 先说扯淡的东西 在nacos 的配置文件中 dataId 这两种声明 是…

系统分析师-软件开发模型总结

前言 软件工程模型也称软件开发模型。它是指软件开发全部过程、活动和任务的结构框架,通过该模型能清晰、直观地表达软件开发全过程,明确地规定要完成的主要活动和任务,它奠定了软件项目工作的基础 一、瀑布模型(Waterfall Model…

FPGA时钟资源详解(3)——全局时钟资源

FPGA时钟系列文章总览:FPGA原理与结构(14)——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 一、概述 全局时钟是 FPGA 中的一种专用互连网络,旨在将时钟信号分配到 FPGA 内各种资源的时钟输入处。这种设计…

【目标检测】YOLOv5 网络结构,bottleneckCSP 与 C3 模块图解

文章目录 Focus 模块Csp 模块BottleneckCspC3CSP1_X 与 CSP_2XYOLOv4 的 CSP_X SSP 与 SSPF YOLOv5 作为 YOLO 家族的第五个版本,本身也演进了几个子版本,现在网上的资料都没有标注具体是哪个子版本的,导致不同文章之间各种混乱,像…

【FedCoin: A Peer-to-Peer Payment System for Federated Learning】

在这篇论文中,我们提出了FedCoin,一个基于区块链的点对点支付系统,专为联邦学习设计,以实现基于Shapley值的实际利润分配。在FedCoin系统中,区块链共识实体负责计算SV,并且新的区块是基于“Shapley证明”&a…

如何通过vscode连接到wsl

下载wsl扩展 远程连接模式

天锐绿盾 || 公司文件数据加密系统,资料防泄密软件,国内专业数据安全系统——自动智能无感透明加密、防泄密管理系统

#天锐绿盾# 天锐绿盾是一款专为中国企业设计的数据防泄密系统,旨在为企业提供全方位的数据安全解决方案,特别关注对敏感信息和核心技术资料的保护。 www.drhchina.com PC地址: https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-9…

Oracle存数字精度问题number、binary_double、binary_float类型

--表1 score是number(10,5)类型 create table TEST1 (score number(10,5) ); --表2 score是binary_double类型 create table TEST2 (score binary_double ); --表3 score是binary_float类型 create table TEST3 (score binary_float );实验一:分别往三张表插入 小数…

苹果应用商店上架工具的最新趋势与未来发展展望

摘要 移动应用app上架是开发者关注的重要环节,但常常会面临审核不通过等问题。为帮助开发者顺利完成上架工作,各种辅助工具应运而生。本文探讨移动应用app上架原理、常见辅助工具功能及其作用,最终指出合理使用工具的重要性。 引言 移动应…

衢州常山县行政服务中心 | 55寸1x5弧形显示屏

项目产品:55寸OLED柔性屏 项目时间:2023年3月 项目地点:衢州常山县行政服务中心办公室 近日,衢州常山县行政服务中心成功完成了其办公室内的55寸1x5弧形显示屏的安装与调试工作。此次项目采用了先进的55寸OLED柔性屏,…

C++王牌结构hash:哈希表闭散列的实现与应用

一、哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素 时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(log n),搜索的效率…

selenium实战之爬取虎牙直播列表页

文章目录 声明实现流程给你主播列表页面分析登录遮罩层处理解析直播列表的数据分页处理 完整的代码 声明 前面有了 selenium的基础,这里就拿虎牙直播页面来做一个实战测试,这是作为学习,测试使用,并不用作为商业用途,不…

【话题】AI大模型学习:理论、技术与应用探索

大家好,我是全栈小5,欢迎阅读小5的系列文章,这是《话题》系列文章 目录 背景1. AI大模型学习的基础理论1.1 机器学习1.2 深度学习 2. AI大模型学习的技术要点2.1 模型结构设计2.2 算法优化2.3 大规模数据处理 3. AI大模型学习的应用场景3.1 自…

为啥学霸反而很少被霸凌?

编辑搜图 请点击输入图片描述(最多18字) ​为什么学霸很少被霸凌? 在我们的学生时代,总有一些同学因为成绩优秀而被大家称为“学霸”。然而,你是否注意到,这些学霸同学往往很少成为霸凌的受害者&#xff…