IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Lua学习(二)与Redis整合 -> 正文阅读

[大数据]Lua学习(二)与Redis整合

Lua脚本简介

Redis 在 2.6 版本中推出了脚本功能,允许开发者将 Lua 语言编写的脚本传到 Redis 中执行。使用 Lua 脚本的优点有如下几点:

  • 减少网络开销:本来需要多次请求的操作,可以一次请求完成,从而节约网络开销;
  • 原子操作:Redis 会将整个脚本作为一个整体执行,中间不会执行其它命令;
  • 复用:客户端发送的脚本会存储在 Redis 中,从而实现脚本的复用。

Redis执行Lua脚本

使用redis-cli登录Redis后就可以执行脚本

简单的Lua脚本

eval "return 9+9" 0

eval 命令用于执行脚本

双引号括起来的就是脚本

0 代表脚本参数个数为0

带参数的脚本

EVAL "local msg='hello ' return msg..KEYS[1]" 1 zhangsan

KEYS[1]从参数表中获得第一个参数值 zhangsan

Lua脚本文件

执行脚本文件

可以把Lua脚本单独保存到文件中,通过–eval命令执行

redis-cli --eval 脚本文件路径 参数...

Lua调用Redis命令

Lua脚本文件中可以调用Redis命令

  • redis.call(“命令”)
  • redis.pcall(“命令”)

call和pcall的区别是:call会直接抛出错误,pcall会将错误信息打印出来

test.lua脚本文件

-- 通过KEYS读取两个Lua的参数
local key=KEYS[1]
local value=KEYS[2]
-- 调用redis的set命令
redis.call("set",key,value);
-- 调用incr命令自增1
redis.call("incr",key);
-- 调用get命令
local get = redis.call("get",key);
return get;

调用脚本

redis-cli --eval test.lua count,99

Redis管理脚本

Redis通过下面命令管理Lua脚本

  • script load 此命令用于将Lua脚本加载到Redis内存中
  • script exists scripts exists sha1 [sha1 …] 此命令用于判断sha1是否已经加载到Redis内存中
  • script flush 此命令用于清除Redis内存已经加载的所有Lua脚本
  • script kill 此命令用于杀掉正在执行的Lua脚本

load命令可以得到sha1值

redis-cli script load "$(cat test.lua)"

通过sha1值执行命令,2是参数个数,后面是参数值

redis-cli evalsha "2c52d695c89fd89c01bdeecd2211a31f3c1c20ca" 2 count 99
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:46:53  更:2022-04-07 22:48:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:19:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码