Chinaunix首页 | 论坛 | 博客
  • 博客访问: 390350
  • 博文数量: 273
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1430
  • 用 户 组: 普通用户
  • 注册时间: 2018-02-02 15:57
文章分类

全部博文(273)

文章存档

2018年(273)

我的朋友

分类: 大数据

2018-06-26 15:31:52

  1. 当初为什么参与设计开发Redisson?
    自04年从事工业自动化、工业IoT工作至今,涉及到很多场景需要对一系列设备进行监控和信号处理等工作。该类场景对实时处理能力,系统稳定性,高可用性,容灾能力等等要求非常高。从12年时决定采用Redis作为实时数据库时就产生了许多想法。Redis与Java这样的编程语言中的常用数据结构看似相像却又不同,一直希望能够用什么方法将两者联系起来。13年开始商用Redis以后这种想法越加强烈。于是在工作之余自行开始了一些相关的摸索与实践,最终决定采用动态类的形式让Redis的数据结构操作起来更像Java对应的结构。谁知远在莫斯科的Nikita似乎也有类似的想法,他从14年元旦便开始了实际应用的开发,并很快的开源了Redisson。于此同时我的实践也有了许些进展,并初步的实现了一些基本功能。不过由于工作上的种种原因,再加上当时自己也缺乏足够的信心,毕竟这是条没人走过的路,大半年过去了进展比较缓慢。殊不知Nikita面对这同样的问题,但是他不仅艰难地坚持了下来,而且丝毫没有放弃的意思。14年下半年时我开始注意到了Redisson项目,仔细了解了以后顿时产生了很强的共鸣,虽然和我的实践有着同样的理念却又是不同的出发点。于是乎,在有了这样的火花以后,我们开始了相互之间的沟通和交流,最后在15年初时决定,放弃自己的实践项目,加入Redisson。至此,在这条没人走过的路上我们不再独行。
  2. Redisson解决了什么问题?相比其他Redis客户端它有什么优势?
    2.1)IoT行业里,一组设备的各种实时状态值往往是作为一个具有业务意义的对象,由JVM管理在内存里,如果将这个对象存储到Redis数据库的String结构里,每次更新一个状态值,就需要做一次序列化和反序列化。同时还有可能面临着同一时刻操作同一个对象的不同状态值带来的并发难题。实际应用时采用了Redis提供的Hash数据结构来储存这个对象,只有这样才能有效地避免这类问题的发生。尽管Redis的Hash结构和Java里的HashMap极为相似,但是在程序操作Redis的时候不能像操作HashMap一样便捷。而且如果对Redis相关命令的用法不能稔熟于心,或在细节之处处理不当,便会最终造成业务上的各种问题。Redisson的Map就是为了填补Redis的Hash和Java的HashMap两者之间的空缺而产生。

image

图1 - Jedis的Hash操作


阅读(1228) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~