华为云云耀云服务器L实例评测|使用redis事务和lua脚本

请添加图片描述

文章目录

  • 云服务器的类型
  • 云服务优点
  • redis
    • 一,关系型数据库(sqlserver,mysql,oracle)的事务隔离机制说明:
    • redis事务机制
  • lua
    • lua脚本好处:
    • 一,怎么在redis中使用lua脚本
    • 二,脚本内容比较多,我们可以创建一个脚本文件。把脚本内容写入文件中。
    • 三,脚本文件上传到redis中,然后仍然在交换模式中执行这个脚本。

云服务器的类型

云服务器类型分为三种:公有云服务器,私有云服务器,专用云服务器

公有云服务器:公有云服务器具有成本效益、弹性扩展、可靠性、高可用性、管理简便、安全性、全球化服务和技术支持等优势,适用于各种规模和类型的企业和个人需求。

私有云服务器:私有云服务器是一种用于构建和管理私有云环境的服务器。它可以提供类似于公有云的弹性计算、存储和网络资源,但是这些资源完全掌控在用户自己的控制下。私有云服务器可以部署在用户自己的数据中心。使用私有云服务器可以满足一些特定需求,例如企业有对数据安全性和隐私性的特别要求,对公有云环境不太适应。

专用云服务器:专用云服务器提供了许多优势,包括更高的性能和可扩展性、更高的安全性和隐私性,以及更大的灵活性和控制权。客户可以根据自己的需求自定义和管理专用云服务器,包括操作系统、应用程序和网络配置等。

云服务优点

  • 成本效益:云服务允许企业根据需求动态地增加或减少计算资源,避免过度投资设备和维护费用,降低运营成本。
  • 易于管理和维护:云服务提供商通常具有强大的技术团队和经验,可以为企业提供技术支持和维护服务,减轻企业管理和维护负担。
  • 灵活性和可扩展性:在云计算环境中,资源是按需分配的,企业可以根据需要随时添加或删除计算资源,以适应业务增长或下降的需要。
  • 安全性:云服务提供商通常具有专门的安全措施来保护用户的数据和隐私,例如备份、加密、网络隔离等,同时由于云计算服务集中在一个地方,采取统一的安全措施能够更有效地保护企业的数据安全。
  • 全球化服务:云服务提供商在全球范围内建立了多个数据中心,可以提供全球化的服务,满足用户在不同地域的业务需求,实现全球范围内的数据传输和访问。
  • 技术支持:云服务提供商通常提供全天候的技术支持和服务,用户可以随时获得专业的帮助和解决方案,提高了用户使用公有云服务器的便利性和可靠性。

redis

一,关系型数据库(sqlserver,mysql,oracle)的事务隔离机制说明:

下面是设置mysql数据库事务隔离机制的sql语句
set global transaction isolation level read uncommitted;
下面是事务隔离的几个机制:

  1. read uncommitted(读取未提交的数据)
    缺点:如果数据最终rollback了,那么读取的数据就错误了
  2. read committed(读取已提交的数据)
    缺点:如果在一个事务中,对通过一个数据进行了多次的读取。在多次读取的过程中,有人提交数据。那么多次读取的数据结果就会出现不一致
  3. repeatable read(重复读)
    缺点:会出现幻读
  4. serializable(串行)
    缺点:太慢

redis事务机制

  1. MULTI与EXEC命令
    以MULTI开始一个事务,然后将多个命令入队到事务中,最后由EXEC命令触发事务,一并执行事务中的所有命令
  2. DISCARD命令
    DISCARD命令用于取消一个事务,她清空客户端的整个事务队列,然后将客户端从事务状态调整回非事务状态,最后返回字符串OK给客户端,说明事务已被取消。

乐观锁:一个版本控制 update table set age=13 where v=1
悲观锁:

  1. WATCH(类似乐观锁)
    WATCH命令用于在事务开始之前监视任意数量的键:当调用EXEC命令执行事务时,如果任意一个被监视的键已经被其他用户端修改了,那么整个事务不再执行,直接返回失败。

例子一:这个例子中没有出现异常,所以所有的命令都成功了。
在这里插入图片描述
例子二:这个例子中,在事务开启后,有一个命令执行出错了,那么所有的命令都不会执行
在这里插入图片描述
例子三:这个例子中出现了两个事务,两个事务都表示自己执行成功了,但是有一个发现值并不是自己设置的,被别人覆盖了。
请添加图片描述
例子四:加上Wathch age后,再来执行事务。
左边的在开启事务之后,exec执行之前,右边有另外一个事务对age进行改进。那么左边的事务将执行失败请添加图片描述

lua

lua脚本好处:

  • 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络时延。
  • 原子操作。redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。因此在编写脚本过程中无需担心会出现竟态条件,无需使用事务。
  • 复用。客户端发送的脚本会永久存在redis中,这样,其他客户端可以复用这一变量类型,声明变量。控制语句,循环语句。函数

一,怎么在redis中使用lua脚本

命令格式:
EVAL script numkeys key [key…] arg [arg…]
说明:

  • script 是第一个参数,为lua5.1脚本。该脚本不需要定义Lua函数(也不应该)
  • 第二个参数numkeys指定后续参数有几个key
  • key [key…],是要操作的键,可以指定多个,在lua脚本中通过KEYS[1],KEYS[2]获取
  • arg [age…],参数,在lua脚本中通过ARGV[1],ARGV[2]获取。

使用eval命令 简单示例:

eval "return ARGV[1]" 0 100

在这里插入图片描述

eval "return {ARGV[2],ARGV[1]}" 0 100 200

在这里插入图片描述

eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

在这里插入图片描述
上面是使用EVAL命令执行lua脚本的简单示例,没有和redis结合起来。
下面我们使用redis.call来执行redis的命令。
说明:…是字符串连接符。local是声明一个局部变量

eval 'local val = ARGV[1].." "..redis.call("get",KEYS[1]) return val' 1 age niuniu

二,脚本内容比较多,我们可以创建一个脚本文件。把脚本内容写入文件中。

注意:

  • 这里执行脚本文件,不是在交互模式下执行的。
    先创建一个脚本文件,在/home目录下
# touch test01.lua

通过vi命令,把脚本内容写进去
在这里插入图片描述
执行找个脚本,注意,前后的空格
在这里插入图片描述

# ./redis-cli -a 123456 --eval /usr/local/src/redis6/lua/test01.lua age , xiaolin

三,脚本文件上传到redis中,然后仍然在交换模式中执行这个脚本。

上传脚本,返回一个hash值,f52a1be1e0dc6ce2813d1890a39dc993cab5527b
在这里插入图片描述
在交换模式中,使用EVALSHA命令执行脚本

EVALSHA f52a1be1e0dc6ce2813d1890a39dc993cab5527b 1 age xiaozh

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络安全】「漏洞原理」(一)SQL 注入漏洞之概念介绍

前言 严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。 【点击此处即可获…

redis在linux系统的安装与使用

一、单机安装Redis。 1.安装redis依赖 在控制台输入 yum install -y gcc tcl2.上传安装包 下载好的安装包上传到/usr/local/src/ 上传方法: 1.确保你拥有Linux服务器的IP地址、用户名和密码。 2.在Windows上,打开命令提示符(Command Promp…

C# redis通过stream实现消息队列以及ack机制

redis实现 查看redis版本 redis需要>5.0 Stream 是 Redis 5.0 引入的一种专门为消息队列设计的数据类型,Stream 是一个包含 0 个或者多个元素的有序队列,这些元素根据 ID 的大小进行有序排列。 它实现了大部分消息队列的功能: 消息 ID…

Unity MRTK Hololens2眼动交互

/** ** UnityVersion : 2021.3.6f1* Description : 眼部交互基类* Author: * CreateTime : 2023-10-11 09:43:20* Version : V1.0.0* * */using System.Collections.Generic; using Microsoft.MixedReality.Toolkit.Input; using UnityEngine;namespace MRTKExtend.EyeTrackin…

神秘的锦衣卫

在看明朝电视剧经常听到的一句台词:锦衣卫办案,闲杂人等速速离开。锦衣卫是明朝特务机构,直接听命于皇帝,是亲军卫之一,也是最重要的一卫。 1、卫所制 卫所制是明代最主要的军事制度,其目标是寓兵于农、屯…

22字符串-简单反转

目录 BM(Boyer-Moore) 坏字符 好后缀 什么情况用哪个规则? LeetCode之路——151. 反转字符串中的单词 分析: 字符串匹配中除了简单的BF(Brute Force)、RK(Rabin-Karp)算法,还有…

PHP Discord获取频道消息功能实现

PHP Discord获取频道消息功能实现 1. 关注对应频道2. 添加机器人3. 配置机器人权限4. 使用 DiscordPHP 类库5. 代码示例 (Laravel 框架)6. 服务器部署 1. 关注对应频道 首先要创建自己的频道, 然后到对应的公告频道中关注这个频道(这时 Discord 会让你选择频道, 选择之前创建的…

区块链游戏的开发框架

链游(Blockchain Games)是基于区块链技术构建的游戏。它们与传统游戏有一些显著不同之处,因此需要特定的开发框架和工具。以下是一些用于链游开发的开发框架及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专…

基于STM32_DS18B20单总线传感器驱动

基于STM32_DS18B20单总线传感器驱动 文章目录 基于STM32_DS18B20单总线传感器驱动前言一、BS18B20?二、原理1.复位与检验2.基本命令3.唯一ROM识别码4.温度转换 三、驱动代码四、注意事项 前言 本文以一款典型的单总线传感器及其驱动——DS18B20为例,简单…

《UnityShader入门精要》学习2

UnityShader 基础 UnityShader 概述 一对好兄弟:材质和UnityShader 总体来说,在Unity中我们需要配合使用材质(Material)和Unity Shader才能达到需要的效果。一个最常见的流程是: (1)创建一个…

(5)SpringMVC处理携带JSON格式(“key“:value)请求数据的Ajax请求

SpringMVC处理Ajax 参考文章数据交换的常见格式,如JSON格式和XML格式 请求参数的携带方式 浏览器发送到服务器的请求参数有namevalue&...(键值对)和{key:value,...}(json对象)两种格式 URL请求和表单的GET请求会将请求参数以键值对的格式拼接到请求地址后面form表单的P…

【深度学习】UniControl 一个统一的扩散模型用于可控的野外视觉生成

论文:https://arxiv.org/abs/2305.11147 代码:https://github.com/salesforce/UniControl#data-preparation docker快速部署:https://qq742971636.blog.csdn.net/article/details/133129146 文章目录 AbstractIntroductionRelated WorksUniCo…

【Linux】HTTPS协议

文章目录 📖 前言1. 引入https协议2. 常见的加密方式2.1 对称加密:2.2 非对称加密:2.3 数据摘要&&数据指纹: 3. 对加密方式的探究3.1 只使用对称加密:3.2 只使用非对称加密:3.3 双方都使用非对称加…

SQL和Python,哪个更容易自学?哪个更适合数据工作的编程新手?

如果你想从事数据工作,比如数据分析、数据开发、数据科学等,你可能会遇到这样的问题:SQL和Python哪个更容易自学?哪个更有用?哪个更有前途?其实这两种语言都是数据工作的重要技能,但它们的特点和…

计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度(matlab代码)

目录 1 主要内容 系统结构 CCPP-P2G-燃气机组子系统 非线性处理缺陷 2 部分代码 3 程序结果 4 程序链接 1 主要内容 该程序参考《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》模型,主要实现的是计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度…

智能井盖传感器:提升城市安全与便利的利器

在智能化城市建设的浪潮中,WITBEE万宾智能井盖传感器,正以其卓越的性能和创新的科技,吸引着越来越多的关注。本文小编将为大家详细介绍这款产品的独特优势和广阔应用前景。 在我们生活的城市中,井盖可能是一个最不起眼的存在。然而…

通过动态IP解决网络数据采集问题

前言 网络数据采集是目前互联网上非常重要且广泛应用的技术之一,它可以帮助我们获取互联网上各种类型的数据,并将其转化为可用的信息。然而,一些网站为了保护其数据被滥用,采取了一系列的限制措施,其中包括对访问者的…

各类高危漏洞介绍及验证方式教程(一)

本期整理的漏洞验证教程约包含50多类漏洞,分多个章节编写,可从以下链接获取全文: 各类高危漏洞验证方式.docx (访问密码: 1455) 搭建dvwa测试环境基础教程.docx(访问密码: 1455) web逻辑漏洞挖掘快速入门基础教程.docx(访问密码: 1455) 01 Ca…

WPF向Avalonia迁移(三、项目结构)

前提: Avalonia版本11.0.0 1.配置文件 1.1 添加配置文件 1.2 读取配置文件 添加System.Configuration.ConfigurationManager using Avalonia.Controls; using System.Configuration;namespace AvaloniaApplication7.Views {public partial class MainWindow : W…

如何使用Net2FTP搭建免费web文件管理器打造个人网盘

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一,特别是智能设备的大面积使用,无论是个人…