分享

实时数据缓存清理问题

mjjian0 发表于 2016-2-18 15:21:52 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 15150
目前情况是这样的:
我们现在实时数据处理用的是storm+ssdb+mysql。
在做实时处理的时候避免不了会有一些缓存数据存到ssdb,ssdb有分表概念,用的是ssdb  hashmap存的,但是这个又不可以设置过期时间。
只能每天定时清理ssdb中的数据。

但是在做清理的时候会报这个异常:

org.nutz.ssdb4j.spi.SSDBException:
at org.nutz.ssdb4j.pool.PoolSSDBStream.req(PoolSSDBStream.java 34)
at com.gewara.util.SsdbClient.req(SsdbClient.java 110)
at com.gewara.util.SsdbClient.hclear(SsdbClient.java 333)
at com.gewara.job.logcenter.PVUVIntoMysqlJob.clearSSDB(PVUVIntoMysqlJob.java 103)
at com.gewara.job.logcenter.PVUVIntoMysqlJob.execute(PVUVIntoMysqlJob.java 58)
at org.quartz.core.JobRunShell.run(JobRunShell.java 202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java 573)


目前有些疑问:
1,在用storm做实时数据处理的时候,用什么做缓存最好啊。
2,这个异常是什么原因啊?

大家可以随便发表意见观点。

已有(4)人评论

跳转到指定楼层
atsky123 发表于 2016-2-18 18:45:29
从 SSDB 1.6.7 版本开始, 增加了 Key 过期功能, 可以支持 Key 到期自动删除, 这样, SSDB 就可以作为一个持久化的缓存服务来使用. 该功能和 Redis 的 ttl/expire 一样, 使用方法是:
[mw_shl_code=bash,true]$ssdb->setx('key', 'value', 60);[/mw_shl_code]
这段代码表示, 设置 key=value, 同时到 60 秒后, 自动删除 key. 需要注意的是, TTL 只支持 KV 数据结构, hash(map) 和 zset 不支持.
回复

使用道具 举报

when30 发表于 2016-2-18 18:58:11
storm楼主在什么情况下用的缓存,一般没用过。
redis也是缓存数据库,而且比较流行,资料也多
回复

使用道具 举报

mjjian0 发表于 2016-2-19 10:00:19
atsky123 发表于 2016-2-18 18:45
从 SSDB 1.6.7 版本开始, 增加了 Key 过期功能, 可以支持 Key 到期自动删除, 这样, SSDB 就可以作为一个持 ...

我用的就是hashmap存的,只能每天定时清理ssdb了。
回复

使用道具 举报

mjjian0 发表于 2016-2-19 10:01:39
when30 发表于 2016-2-18 18:58
storm楼主在什么情况下用的缓存,一般没用过。
redis也是缓存数据库,而且比较流行,资料也多

恩,不知道他们当初为啥选了ssdb,目前也没法改变了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条