美文网首页程序员PHP经验分享redis学习
让redis操作更简单:为不同数据类型封装统一的命令

让redis操作更简单:为不同数据类型封装统一的命令

作者: solohunter | 来源:发表于2018-06-18 15:26 被阅读11次

Redis内置了Lua解释器,可以运行一段lua脚本,完成相对复杂的操作。

实现一个简单的操作:创建一个hash类型的key,并设置过期时间,lua代码如下

local values = {}; 
for i,v in ipairs(KEYS) do 
    values[#values+1] = redis.pcall('hmset', v, ARGV[2], ARGV[3], ARGV[4], ARGV[5]); 
    redis.pcall('expire', v, ARGV[1]);
end
return {KEYS,values};

执行脚本

$ redis-cli --eval ./scripts/hash.lua hash_1 , 100 name maria age 22
1) 1) "hash_1"
2) 1) OK

查看key

127.0.0.1:6379> hgetall hash_1
1) "name"
2) "maria"
3) "age"
4) "22"
127.0.0.1:6379> ttl hash_1
(integer) 88

封装统一API即使用redis内置的lua解释器实现,支持string, hash, list, set, zset 5种数据类型。

目前已封装的api如下:

  • create:创建key
  • createNotExists: 在key不存在时创建,否则不创建
  • createExists: 在key存在时创建,否则不创建
  • update: 更新key值,可更改ttl,或保持原ttl
  • updateBatch: 批量更新
  • insert:插入值,例如向列表或集合插入元素
  • insertNotExists:类似createNotExists
  • insertExists:类型createExists
  • get:获取key值(多个)
  • getAndSet: 获取key并设置新的值
  • find:获取key值(单个)
  • findBatch:批量获取
  • destroy:销毁key
  • destroyBatch:批量销毁
  • delete:删除key(多个)

更多内容见 github

相关文章

  • 让redis操作更简单:为不同数据类型封装统一的命令

    Redis内置了Lua解释器,可以运行一段lua脚本,完成相对复杂的操作。 实现一个简单的操作:创建一个hash类...

  • redis 第三讲 数据类型

    redis 五大数据类型 哪里获取redis常见数据类型操作命令 参考 redis 键(key) redis 字符...

  • Redis学习笔记02——数据类型和操作命令

    本文主要介绍 Redis 常用的基本操作命令和数据类型操作命令,也就是 Redis 的基本使用。通过学习本文,应该...

  • Java高级技术day80:JedisAPI操作Redis

    一、Jedis的使用 Jedis 集成了 redis 的一些命令操作,封装了对 redis 命令的 Java 客户...

  • Redis使用心得记录

    0.通用命令 1.string操作命令 注redis中字符数据类型: 2.hash操作命令 3.list操作命令 ...

  • 03 Redis命令

    为了梳理知识点,本文章仅对Redis公共的命令作记录,对数据类型的常用操作命令请查看我的 Redis数据类型 文...

  • redis基本操作

    了解下未封装过的redis直接操作 redis趣味课程 redis支持的数据类型 string字符串型listse...

  • redis学习系列(二)

    redis简单操作之string类型 Redis 数据类型 Redis支持五种数据类型:string(字符串),h...

  • Redis常用命令

    Redis常用命令 redis常见数据类型操作命令参考网址 1.键(key) keys *:查看所有key; ex...

  • Redis高级特性

    本文涉及到的命令和数据类型请参见: Redis数据类型和基本操作 命令 keys * (可模糊匹配) exists...

网友评论

    本文标题:让redis操作更简单:为不同数据类型封装统一的命令

    本文链接:https://www.haomeiwen.com/subject/exyneftx.html