您的位置:首页 > 数据库 > Redis

Julia: 用Julia操作Redis数据库及一些用法

2015-10-05 12:13 507 查看
事实上,Julia有多个操作Redis库。其中,我更倾向于下面这个:
https://github.com/jkaye2012/Redis.jl
前面我们已经知道,Redis 是KEY-VALUE结构。

如果在Redis客户端,我们可以(以下数据为虚拟)

set 600036.SH_1min:2014-10-8:0930:Open 10.08

set 600036.SH_1min:2014-10-8:0930:Close 10.20

set 600036.SH_1min:2014-10-8:0930:High 10.30

set 600036.SH_1min:2014-10-8:0930:Low 10.01

......

而如果利用Julia的脚本来替代其客户端,可以

tempdata =Dict{Any,Any}();

# 注意不能写Dict{ASCIIString,Float64}();hmset函数要求数据格式类型是DICT{ANY,ANY}()类型!

setindex!(tempdata,10.08,"600036.SH_1min:2014-10-8:0930:Open") # 0.4版本

setindex!(tempdata,10.20,"600036.SH_1min:2014-10-8:0930:Close")

setindex!(tempdata,10.30,"600036.SH_1min:2014-10-8:0930:High")

setindex!(tempdata,10.01,"600036.SH_1min:2014-10-8:0930:Low")

......

先把相关的DICT类型数据建立起来。

(1)存数据

using Redis;

conn = RedisConnection( host="127.0.0.1", port=6379, db=15)# 建立一个连接, 没有设置密码

我们假定在Redis数据库中,把一个代码某一天的数据存到一个文件中:

hmset(conn,“600036.SH_1min:2014-10-8”,tempdata)#把相关的数据(Dict类型)放入表内。

特别注意,如果tempdata =Dict("a"=>"b") 或 tempdata =Dict(1=>2) (大家可以验证是一下是什么类型?)

这类不是Dict{Any,Any}类型,会报错!(为什么?)

(2)取数据

historydata = hgetall(conn,“600036.SH_1min:2014-10-8”) # 原来的DICT集合。

其中,返回值historydata 是DICT{AbstractString,AbstractString} 类型。

注意,返回值不是Dict{Any,Any}类型!

(3)执行持久化命令

在客户端,可以用SAVE或BGSAVE(后台线程持久化).

在 Redis库中,Julia可以通过如下形式实现。

总之,Julia脚本实现对Redis的操作,也很方便。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: