lua中sring字符串包理解和使用

local string = require("string")

--string.format( "formatstring",... ) 格式化输出字符串

local s = string.format("%s is good language", "lua")

print("s = ", s)

local s1 = string.format("%s is good language", "c")

print("s1 = ", s1)

local s2 = string.format("%s is good language", "java")

print("s2 = ", s2)

--string.byte(s, i, j) 函数用于获取字符串中每个字符的ASCII码值

print("byte = ", string.byte("abc",1,3))

--string.char(byte, ...) 返回字节对应的字符

print("char = ", string.char(97, 98, 99))

--string.find(s, pattern, init, plain) 查找字符串出现的位置

-- s 原字符串

-- pattern 正则

-- init 指定了搜索的起始位置,默认为 1,可以一个负数,表示从后往前数的字符个数。

-- plain 表示是否使用简单模式,默认为 false,true 只做简单的查找子串的操作,false 表示使用使用正则模式匹配

print("find = ", string.find("abcad",'a', 2))

--string.gmatch(s, pattern, init)

--获取匹配到的值,是个数组

local s ="hello world from Lua"

for w in string.gmatch(s, "%a+") do

    print("gmatch = ", w)

end

--string.gsub(s, pattern, repl, n)

--在字符串中替换

--s原字符串

--pattern 需要替换的子串

--repl 替换的字符串

--替换数量

print("gsub = ", string.gsub("aaaa","a","z",3))

--string.len(s)

--返回字符串长度

print("len = ", string.len("aa\n"))

--string.upper(s)

--返回大写字符串

print("upper = ",string.upper('aaa'))

--string.lower(s)

--返回小写字符串

print("lower = ",string.lower('AAA'))

--string.match(s, pattern, init)

--从字符串中匹配符合的子串

--s原字符串

--pattern 正则

--init 可选 从什么位置开始匹配

print("match", string.match("I have 2 questions for you.", "%d+ %a+"))

--string.rep(s, n, sep)

--返回字符串string的n个拷贝

--s 原字符串

--n 数量

--sep 分隔符

print("rep =", string.rep("abc", 2, '|'))

--string.reverse(s)

--字符串反转

print("reverse = ", string.reverse("abc"))

--string.sub(s, i, j)

--截取字符串

--s 原字符串

--i 起始位置

--j 结束位置

print("sub = ", string.sub("abc",1,1))

--string.pack(fmt, v1, v2, ...)

--用于将一组数据打包成一个二进制字符串

--fmt格式化字符

-- > 大端 < 小端

print("pack = ",string.pack(">i3",10))

--string.unpack(fmt, s, pos)

--用于将字符串解包

--fmt格式化字符

-- > 大端 < 小端

print("unpack = ", string.unpack(">i3",string.pack(">i3",10)))

--string.packsize(fmt)

--打包大小

print("packsize = ",string.packsize(">i3"))

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot使用Lua脚本可以实现Redis的各种操作,括读取、写入、删除等。下面我们将分别介绍如何使用Lua脚本来实现这些操作。 1. 读取操作 读取操作可以通过Redis的get()方法实现,而使用Lua脚本可以进一步优化读取性能。下面是一个使用Lua脚本实现读取操作的示例代码: ```java // 创建RedisScript对象 RedisScript<String> redisScript = RedisScript.of("return redis.call('get', KEYS[1])", String.class); // 定义key String key = "test"; // 执行脚本并获取返回值 String result = redisTemplate.execute(redisScript, Collections.singletonList(key)); // 输出返回值 System.out.println(result); ``` 在上述代码,我们首先使用RedisScript.of()方法创建一个RedisScript对象,该对象接收一个字符串参数,字符串含了我们要执行的Lua脚本。在本例,我们使用了一个简单的Lua脚本,通过KEYS[1]获取了Redis指定key的值并返回。 接着,我们定义了key,并使用redisTemplate对象的execute()方法来执行脚本。execute()方法接收两个参数:RedisScript对象和key列表,其key列表是一个List类型,用于传递Lua脚本所需的key值。 最后,我们输出了脚本的返回值。 2. 写入操作 写入操作可以通过Redis的set()方法实现,而使用Lua脚本可以进一步优化写入性能。下面是一个使用Lua脚本实现写入操作的示例代码: ```java // 创建RedisScript对象 RedisScript<Void> redisScript = RedisScript.of("redis.call('set', KEYS[1], ARGV[1])", Void.class); // 定义key和value String key = "test"; String value = "hello world"; // 执行脚本 redisTemplate.execute(redisScript, Collections.singletonList(key), value); ``` 在上述代码,我们首先使用RedisScript.of()方法创建一个RedisScript对象,该对象接收一个字符串参数,字符串含了我们要执行的Lua脚本。在本例,我们使用了一个简单的Lua脚本,通过KEYS[1]和ARGV[1]设置了Redis指定key的值。 接着,我们定义了key和value,并使用redisTemplate对象的execute()方法来执行脚本。execute()方法接收三个参数:RedisScript对象、key列表和value,其key列表是一个List类型,用于传递Lua脚本所需的key值,而value则是一个Object类型,用于传递Lua脚本所需的value值。 3. 删除操作 删除操作可以通过Redis的del()方法实现,而使用Lua脚本可以进一步优化删除性能。下面是一个使用Lua脚本实现删除操作的示例代码: ```java // 创建RedisScript对象 RedisScript<Long> redisScript = RedisScript.of("return redis.call('del', KEYS[1])", Long.class); // 定义key String key = "test"; // 执行脚本 Long result = redisTemplate.execute(redisScript, Collections.singletonList(key)); // 输出返回值 System.out.println(result); ``` 在上述代码,我们首先使用RedisScript.of()方法创建一个RedisScript对象,该对象接收一个字符串参数,字符串含了我们要执行的Lua脚本。在本例,我们使用了一个简单的Lua脚本,通过KEYS[1]删除了Redis指定key的值并返回。 接着,我们定义了key,并使用redisTemplate对象的execute()方法来执行脚本。execute()方法接收两个参数:RedisScript对象和key列表,其key列表是一个List类型,用于传递Lua脚本所需的key值。 最后,我们输出了脚本的返回值,该返回值为删除的键数。 除了以上操作,还可以使用Lua脚本实现Redis的其他操作,例如批量写入、批量删除等。总之,使用Lua脚本可以大大提高Redis的操作效率,特别是在大规模数据操作时,效果更为明显。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值