专栏首页性能与架构Redis 将发展为一个生态体系

Redis 将发展为一个生态体系

Redis Labs 最近宣布了一个新的Redis扩展方式:Redis Module System

Redis 现在可以通过 Lua 脚本进行扩展,但 Module 提供了更加底层的 Redis 访问方式

Module System 的意义重大,将汇集大量开发者的智慧,让 Redis 的用户能够使用到更多强大的功能

Module 示例

Redis Lab 发布了一些 module,例如

01

图片处理模块 graphicsmagick

GraphicsMagick 是图片处理的瑞士军刀,提供了高效强大的工具集

graphicsmagick 模块提供了在 Redis 内进行图片处理的功能,如

图片缩放命令

redis> GRAPHICSMAGICK.THUMBNAIL mypic 64 64

OK

把名为mypic的key所对应的图片缩放到宽64高64

图片旋转命令

redis> GRAPHICSMAGICK.ROTATE mypic 90

OK

把名为mypic的key所对应的图片旋转90度

02

字符串扩展命令 rxstrings

这个模块是对 Redis 字符串命令的扩展,如

CHECKAND

检查某key的值和指定的字符串是否相同,然后对其执行一个命令

redis> SET mykey “Hello World”

OK

redis> CHECKAND mykey “Hello World” SET mykey “Hello Redis Modules”

OK

redis> GET mykey

“Hello Redis Modules”

检查 mykey 的值是否为 “Hello World”,如果相同,执行后面的 SET 命令

PREPEND

在key值的前面添加字符串

redis> SET mykey ” World”

OK

redis> PREPEND mykey Hello

(integer) 11

redis> GET mykey

“Hello World”

把 "Hello" 添加到 mykey 的值的前面,形成一个新的字符串

Module 的开发和使用

Redis 的当前版本还不支持模块系统,据说会在4.0中发布,现在正在分支版本中测试,到时会提供模块的支持接口

开发者可以用C语言开发模块,然后做为动态库加载到 Redis

使用模块

(1)编译模块代码,得到模块文件

(2)加载到 Redis

可以在启动时加载,--loadmodule /path/to/module.so,或者在配置文件中指定

Redis 希望创建一个生态系统,可以让大家创建并分享模块,开发者可以把模块发布到 GitHub 供其他人使用,Redis 官方也会挑选和发布高质量的模块,让所有人根据自己的需求选择最合适的模块

本文分享自微信公众号 - 性能与架构(yogoup)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • lua表排序

    Lua作为一种很强大且轻量级脚本语言的存在,对于掌握其几乎无所不能的Table(其实就是一个Key Value的数据结构,它很像Javascript中的Obje...

    晚晴幽草轩轩主
  • Lua代码片段收集

    Lua实现闭包 --[[@Func :实现闭包 @Desc : 当一个函数内部嵌套另一个函数定义时,内部的函数体可以访问外部的函数的局部变量,这种特征...

    晚晴幽草轩轩主
  • 使用lua小技巧

    Lua之sleep函数的实现 一个不幸的消息是Lua中没有内置sleep函数,我们需要DIY。有4种方法可以实现sleep函数,如下: 方法1 –在一个死循环中...

    晚晴幽草轩轩主
  • lua Standard Libraries

    The standard Lua libraries provide useful functions that are implemented directl...

    晚晴幽草轩轩主
  • golang基于redis lua封装的优先级去重队列

    作者: 峰云 博客: http://xiaorui.cc 前言: 前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务...

    李海彬
  • HMM模型详解

    最近一个赌场的老板发现生意不畅,于是派出手下去赌场张望。经探子回报,有位大叔在赌场中总能赢到钱,玩得一手好骰子,几乎是战无不胜。而且每次玩骰子的时候周围都有几个...

    IT派
  • 使用Ldoc给Lua生成文档

    Ldoc介绍   Ldoc是一个Lua的文档生成工具,过去,比较常用的Lua生成文档的工具是LuaDoc,可惜作者自从2008年之后就再也没有发布过新的版本了...

    晚晴幽草轩轩主
  • 生成lua的静态库.动态库.lua.exe和luac.exe

    前些日子准备学习下关于lua coroutine更为强大的功能,然而发现根据lua 5.1.4版本来运行一段代码的话也会导致 “lua: attempt to ...

    晚晴幽草轩轩主
  • golang基于redis lua封装的优先级去重队列

    前言: 前两天由于某几个厂商的api出问题,导致后台任务大量堆积,又因为我这边任务流系统会重试超时任务,所以导致队列中有大量的重复任务。这时候我们要临时解决两个...

    李海彬
  • Lua table之弱引用

    Lua采用了基于垃圾收集的内存管理机制,因此对于程序员来说,在很多时候内存问题都将不再困扰他们。然而任何垃圾收集器都不是万能的,在有些特殊情况下,垃圾收集器是无...

    晚晴幽草轩轩主

扫码关注云+社区

领取腾讯云代金券