Julia : 如何进一步改进操作Redis的效率?

最近在用Julia脚本操作Redis内存数据库,但是感觉Julia的脚本效率比较低。还没有找到相关办法。
julia> using Redis;

julia>  conn = RedisConnection( host="127.0.0.1", port=6379, db=0);

julia> trans = open_transaction(conn);

julia> mydat= Dict{Any,Any}();

julia> @time for i =1:10000 setindex!(mydat,"abcdefghijklmn",i) end;
  0.011981 seconds (47.48 k allocations: 1.079 MB)

julia> length(mydat)
10000
julia> mydat2 = mydat;

julia> @time hmset(trans,"mydat_1",mydat)
  1.958942 seconds (382.23 k allocations: 2.892 GB, 29.62% gc time)
"QUEUED"

julia> @time for i =10001:1000000 setindex!(mydat,"abcdefghijklmn",i) end;
  5.918395 seconds (10.73 M allocations: 228.507 MB, 59.50% gc time)

julia> @time hmset(trans,"mydat_2",mydat)
ERROR: InterruptException:
 in string at ascii.jl:44
 in pack_command at C:\Users\Administrator\.julia\v0.4\Redis\src\parser.jl:74
 in execute_command at C:\Users\Administrator\.julia\v0.4\Redis\src\parser.jl:83
 in hmset at C:\Users\Administrator\.julia\v0.4\Redis\src\client.jl:76

julia> @time hmset(conn,"mydat_conn",mydat2)
  1.901253 seconds (379.91 k allocations: 2.892 GB, 28.90% gc time)
true
julia> @time reData_conn= hgetall(conn,"mydat_conn");
  0.346850 seconds (343.77 k allocations: 18.921 MB, 6.67% gc time)

julia> typeof(reData_conn)
Dict{AbstractString,AbstractString}

julia> length(reData_conn)
10000

问题:当KEY-VALUE在1万量级时,基本运行正常;但达到100万量级时,效率极其低下,只有中断执行。这个问题,不管是否使用事务,基本一样。
事务的效率并不明显,不知为什么?使用不正确?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值