首页 > 数据库 >Redis进阶:Lua初尝试

Redis进阶:Lua初尝试

时间:2023-12-19 16:55:50浏览次数:34  
标签:进阶 nil -- 局部变量 Redis Lua 全局变量

Lua是一门脚本语言,可以编写Lua脚本到Redis中执行

 

【使用Lua脚本的优点】

1.减少网络开销。Redis每条命令都需要进行网络传输,特别是命令条数很多的情况。

2.原子操作。脚本都会作为一个整体执行,中间不会有其他命令插入。

3.复用。会永远存储在Redis中

比较类似Sql里面的存储过程

 

【Lua数据类型】

1.空类型 nil

2.布尔类型 boolean

3.数字类型 number

4.字符串类型  string

5.表类型  table。  既可以当数组也可以当字典

6.函数类型 function。

 

【Lua变量】

分为全局变量和局部变量。

注意:全局变量没有声明和未声明之分,只有nil和非nil之分。

删除全局变量的方法就是将它赋值为nil。

 

局部变量和全局变量的区别是局部变量声明时需要加上一个local。

比如

//全局变量
a=2

//局部变量
local  b=2

局部变量和全局变量默认都为nil。

 

【变量声明要求】

1.不能数字开头

2.只能包含字母,数字和下划线

3.不能和关键字相同

 

【注释】

--单行注释

--[[
    多行注释
]]

 

【赋值】

一一对应原则

local  a, b=1, 2    --这里a=1,b=2
local  c,d=1,2,3    --这里c=1,d=2,3被舍弃
lcoal  e,f=1          --这里e=1,f=nil

 

标签:进阶,nil,--,局部变量,Redis,Lua,全局变量
From: https://www.cnblogs.com/AduBlog/p/17914159.html

相关文章

  • 【转载】Springboot2.x 使用 Redis
    参考https://blog.csdn.net/weixin_43749805/article/details/131399516https://juejin.cn/post/7076244567569203208https://blog.csdn.net/oJingZhiYuan12/article/details/126386904注意classjava.lang.Integercannotbecasttoclasscom.xiaqiuchu.demo.entity.S......
  • redis模糊删除
     客户端连接redis,查看数据 退出 执行exit,退出客户端 执行删除命令(利用xargs命令)redis-cli-apasswordkeys"key*"|xargsredis-cli-apassworddelpassword为密码keys"key*" 即为模糊删除的key查看结果 ......
  • Redis7 复制
    1、主从复制1.1、常用命令1、主从复制从库操作replicaof主库IP主库端口或者slaveof主库IP主库端口2、取消主从slaveofnoone1.2、主从复制原理和工作流程1、slave启动,同步初请slave启动成功连接到master后会发送一个sync命令slave首次全新连接master,一次完全同步(全......
  • redis实践经验总结
    Redis内存配置当Redis内存不足时,可能导致Key频繁被删除、响应时间变长、QPS不稳定等问题。当内存使用率达到80%以上时就需要我们警惕,并快速定位到内存占用的原因。一般来说,会有以下几种占用内存的情况:数据内存是Redis最主要的部分,存储Redis的键值信息。主要问题是BigKey问题......
  • redis中的hash tag
    在集群模式下,如果lua脚本同时操作多个key,可能会出现:CROSSSLOTKeysinrequestdon'thashtothesameslot的错误。这种情况下,可以通过{...},来指定多个key使用相同的内容进行hash,例如:user:{123}:username和user:{123}:email就会用123去hash,保证落到同一个slot,也就是可以在单个......
  • Redis上层数据类型设计
    StringString即字符串对象,是Redis使用最多的数据类型,其使用key-value结构,key为唯一标识,value为存储内容。value不仅可以是字符串,也可以是数字,包括整数或者浮点数。value最多可以容纳的大小为512MB。>SETnameErickRenOK>SETage19OK>GETname"ErickRen">GETage......
  • nginx+lua+redis实现灰度发布
    前言:授人以鱼不如授人以渔.先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是沉淀使用nginx+lua+redis实现灰度,当我们具备了这种能力,随时可以基于这种能力和思想调整实现方案:比如nginx+lua+(其他数据源)、nginx+(其他脚本语言)一、灰度......
  • 动态规划进阶
    数位DP常见的模板:询问\(l\simr\)中有多少个满足给定条件的数,\(1\lel\ler\le10^{18}\)。这种问题,数位DP可以做到\(O(\logv)\)级别,其中\(v\)是\(l,r\)的值域。思路直接枚举会枚举大量不可能满足条件的数,可以从数位入手。数位DP的算法流程如下:几个定义:\(len(......
  • redis系列--redis单机
    Redis是单线程吗?Redis的单线程主要是指Redis的网络IO和键值对读写都是由一个线程来完成的,这也是Redis对外提供键值存储服务的主要流程。但redis的其他功能,比如持久化,异步删除,集群数据同步等,其实是由额外的线程执行的。Redis单线程为什么还能这么快?因为它所有的数据都在内存中,所......
  • Docker Compose 快速搭建 Redis 单机版
    Redis是非常流行的缓存中间件,其具有功能强大和部署简单的优势,我们在CentOS上使用yum就能够在线安装Redis。之所以要介绍使用Docker进行容器化部署Redis,主要原因是当前容器化部署是主流,而且能够保障服务器文件系统的整洁。本篇博客主要介绍如何使用docker-compose快速......