io_shuten 0.1.0.dev7 → 0.1.1.dev1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +8 -14
- data/Gemfile.lock +42 -58
- data/README.md +148 -24
- data/Rakefile +0 -29
- data/benchmark/viiite-template-redis.rb +75 -0
- data/benchmark/viiite-template.rb +24 -31
- data/benchmarks.sh +7 -46
- data/benchmarks/redis.kvc.rb +8 -0
- data/benchmarks/redis.kvs.rb +8 -0
- data/io_shuten.gemspec +30 -92
- data/lib/io_shuten/redis.rb +1 -1
- data/lib/io_shuten/stores/redis/key_value/collection.rb +15 -3
- data/lib/io_shuten/version.rb +1 -1
- data/spec/lib/redis_spec.rb +5 -5
- data/spec/spec_helper.rb +1 -3
- metadata +109 -131
- data/.rvmrc +0 -71
- data/.simplecov +0 -16
- data/.yardopts +0 -3
- data/doc/IO_3A_3ABuffer.html +0 -198
- data/doc/IO_shuten.html +0 -126
- data/doc/IO_shuten/Base.html +0 -1062
- data/doc/IO_shuten/Base/FileAccessError.html +0 -129
- data/doc/IO_shuten/Base/FileNotFoundError.html +0 -129
- data/doc/IO_shuten/Base/NodeNameError.html +0 -129
- data/doc/IO_shuten/Base/NodeNotFoundError.html +0 -129
- data/doc/IO_shuten/Base/NotYetImplemented.html +0 -129
- data/doc/IO_shuten/Buffer.html +0 -1822
- data/doc/IO_shuten/Errors.html +0 -119
- data/doc/IO_shuten/Errors/FileAccessError.html +0 -129
- data/doc/IO_shuten/Errors/FileNotFoundError.html +0 -129
- data/doc/IO_shuten/Errors/NodeExistsError.html +0 -129
- data/doc/IO_shuten/Errors/NodeNameError.html +0 -129
- data/doc/IO_shuten/Errors/NodeNameExistsError.html +0 -129
- data/doc/IO_shuten/Errors/NodeNotFoundError.html +0 -129
- data/doc/IO_shuten/Errors/NotYetImplemented.html +0 -129
- data/doc/IO_shuten/Memory.html +0 -1778
- data/doc/IO_shuten/Mongo.html +0 -166
- data/doc/IO_shuten/Redis.html +0 -868
- data/doc/IO_shuten/Stores.html +0 -121
- data/doc/IO_shuten/Stores/BaseContainer.html +0 -377
- data/doc/IO_shuten/Stores/Mongo.html +0 -121
- data/doc/IO_shuten/Stores/Mongo/Collection.html +0 -109
- data/doc/IO_shuten/Stores/Mongo/GridFS.html +0 -109
- data/doc/IO_shuten/Stores/Redis.html +0 -123
- data/doc/IO_shuten/Stores/Redis/Container.html +0 -778
- data/doc/IO_shuten/Stores/Redis/KeyValue.html +0 -279
- data/doc/IO_shuten/Stores/Redis/KeyValue/Collection.html +0 -504
- data/doc/IO_shuten/Stores/Redis/KeyValue/Single.html +0 -438
- data/doc/IO_shuten/Stores/Redis/PubSub.html +0 -245
- data/doc/IO_shuten/Zmq.html +0 -166
- data/doc/_index.html +0 -375
- data/doc/class_list.html +0 -47
- data/doc/css/blame.css +0 -11
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -55
- data/doc/css/style.css +0 -322
- data/doc/file.README.html +0 -158
- data/doc/file_list.html +0 -49
- data/doc/frames.html +0 -13
- data/doc/index.html +0 -158
- data/doc/js/app.js +0 -205
- data/doc/js/full_list.js +0 -167
- data/doc/js/jquery.js +0 -16
- data/doc/method_list.html +0 -390
- data/doc/top-level-namespace.html +0 -105
@@ -0,0 +1,75 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
3
|
+
require "rubygems"
|
4
|
+
require "viiite"
|
5
|
+
require "bundler/setup"
|
6
|
+
require "io_shuten"
|
7
|
+
require "logger"
|
8
|
+
|
9
|
+
lorem_ipsum = <<LOREM
|
10
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
11
|
+
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
|
12
|
+
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
|
13
|
+
no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
|
14
|
+
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
|
15
|
+
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
|
16
|
+
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
|
17
|
+
ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
18
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
19
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
20
|
+
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
21
|
+
LOREM
|
22
|
+
|
23
|
+
|
24
|
+
ioc = IO_shuten.const_get $CUR_IMPL
|
25
|
+
ioc.redis = Redis::Namespace.new("io_shuten:benchmark", :redis => Redis.new)
|
26
|
+
runs = 1..5
|
27
|
+
outer_loops = 32
|
28
|
+
internal_loops = 128
|
29
|
+
|
30
|
+
Viiite.bench do |b|
|
31
|
+
b.variation_point :ruby, Viiite.which_ruby
|
32
|
+
b.variation_point :type, "#{$CUR_IMPL}:#{$CUR_BACKEND}:#{$CUR_TYPE}"
|
33
|
+
|
34
|
+
b.range_over(runs, :run) do |run|
|
35
|
+
|
36
|
+
ioc.purge_instances!
|
37
|
+
b.report :writes do
|
38
|
+
outer_loops.times do |o|
|
39
|
+
iob = ioc.new("rbuff-#{run}-#{o}",$CUR_BACKEND,$CUR_TYPE)
|
40
|
+
|
41
|
+
internal_loops.times do |i|
|
42
|
+
iob.write lorem_ipsum
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
ioc.purge_instances!
|
48
|
+
b.report :reads do
|
49
|
+
outer_loops.times do |o|
|
50
|
+
iob = ioc.new("rbuff-#{run}-#{o}",$CUR_BACKEND,$CUR_TYPE)
|
51
|
+
|
52
|
+
internal_loops.times do |i|
|
53
|
+
iob.read
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
ioc.purge_instances!
|
58
|
+
b.report :logging do
|
59
|
+
outer_loops.times do |o|
|
60
|
+
logdev = ioc.new("rlogdev-#{run}-#{o}",$CUR_BACKEND,$CUR_TYPE)
|
61
|
+
logger = Logger.new(logdev)
|
62
|
+
|
63
|
+
internal_loops.times do |i|
|
64
|
+
logger.info lorem_ipsum
|
65
|
+
logger.debug "counter: #{run}-#{o}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
ioc.redis_clear!
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
@@ -20,12 +20,11 @@ voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita ka
|
|
20
20
|
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
|
21
21
|
LOREM
|
22
22
|
|
23
|
-
tmp_path = File.expand_path("../../tmp", __FILE__)
|
24
|
-
Dir.mkdir(tmp_path) unless File.exists?(tmp_path)
|
25
23
|
|
26
24
|
ioc = IO_shuten.const_get $CUR_IMPL
|
27
25
|
runs = 1..5
|
28
|
-
|
26
|
+
outer_loops = 32
|
27
|
+
internal_loops = 128
|
29
28
|
|
30
29
|
Viiite.bench do |b|
|
31
30
|
b.variation_point :ruby, Viiite.which_ruby
|
@@ -35,45 +34,39 @@ Viiite.bench do |b|
|
|
35
34
|
|
36
35
|
ioc.purge_instances!
|
37
36
|
b.report :writes do
|
38
|
-
|
39
|
-
iob = ioc.new("wbuff-#{run}-#{
|
40
|
-
iob.write lorem_ipsum
|
41
|
-
end
|
42
|
-
end
|
37
|
+
outer_loops.times do |o|
|
38
|
+
iob = ioc.new("wbuff-#{run}-#{o}")
|
43
39
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
logdev = ioc.new("logdev-#{run}-#{i}")
|
48
|
-
logger = Logger.new(logdev)
|
49
|
-
logger.info lorem_ipsum
|
50
|
-
logger.debug "counter: #{run}-#{i}"
|
40
|
+
internal_loops.times do |i|
|
41
|
+
iob.write lorem_ipsum
|
42
|
+
end
|
51
43
|
end
|
52
44
|
end
|
53
45
|
|
54
|
-
|
55
|
-
b.report :
|
56
|
-
|
57
|
-
iob = ioc.
|
58
|
-
|
59
|
-
|
46
|
+
# no purging for reads!
|
47
|
+
b.report :reads do
|
48
|
+
outer_loops.times do |o|
|
49
|
+
iob = ioc.open("wbuff-#{run}-#{o}")
|
50
|
+
|
51
|
+
internal_loops.times do |i|
|
52
|
+
iob.read
|
53
|
+
end
|
60
54
|
end
|
61
55
|
end
|
62
56
|
|
63
57
|
ioc.purge_instances!
|
64
|
-
b.report :
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
58
|
+
b.report :logging do
|
59
|
+
outer_loops.times do |o|
|
60
|
+
logdev = ioc.new("logdev-#{run}-#{o}")
|
61
|
+
logger = Logger.new(logdev)
|
62
|
+
|
63
|
+
internal_loops.times do |i|
|
64
|
+
logger.info lorem_ipsum
|
65
|
+
logger.debug "counter: #{run}-#{o}"
|
66
|
+
end
|
69
67
|
end
|
70
68
|
end
|
71
69
|
|
72
70
|
end
|
73
71
|
|
74
|
-
# File cleaning …
|
75
|
-
Dir["#{tmp_path}/**/*"].each do |f|
|
76
|
-
File.unlink f
|
77
|
-
end
|
78
|
-
|
79
72
|
end
|
data/benchmarks.sh
CHANGED
@@ -1,57 +1,18 @@
|
|
1
1
|
#!/bin/bash
|
2
|
-
echo "Loading RVM ..."
|
3
|
-
[[ -s $rvm_path/scripts/rvm ]] && source $rvm_path/scripts/rvm >/dev/null 2>&1
|
4
|
-
|
5
|
-
RUBIES="ruby-1.8.7-p357 ree ruby-1.9.2-p290 ruby-1.9.3-p0"
|
6
2
|
GEMSET="io_shuten"
|
7
3
|
BENCHMARKS=`ls benchmarks`
|
8
4
|
BENCH_OUT="benchmark/out.rash"
|
9
5
|
BENCH_REP="benchmark/report"
|
10
|
-
BENCH_RUN=
|
11
|
-
CUR_RAKE_VER=`gem list rake | awk '$1~/rake/{print $2}'`
|
12
|
-
|
13
|
-
[[ -e "$BENCH_OUT" ]] && rm $BENCH_OUT && touch $BENCH_OUT
|
14
|
-
|
15
|
-
for ruby in $RUBIES; do
|
16
|
-
|
17
|
-
echo
|
18
|
-
echo "Switching to: $ruby@$GEMSET"
|
19
|
-
rvm use --create $ruby@$GEMSET >/dev/null 2>&1
|
20
|
-
|
21
|
-
ruby_rake_ver=`gem list rake | awk '$1~/rake/{print $2}'`
|
22
|
-
|
23
|
-
if [[ "$ruby_rake_ver" != "$CUR_RAKE_VER" ]]; then
|
24
|
-
echo "Installing rake $CUR_RAKE_VER ..."
|
25
|
-
gem install rake -v=$CUR_RAKE_VER >/dev/null 2>&1
|
26
|
-
else
|
27
|
-
echo "rake $CUR_RAKE_VER already installed."
|
28
|
-
fi
|
29
|
-
|
30
|
-
bundler_installed=`gem list bundler | awk '$1~/bundler/ { print $1 }'`
|
31
|
-
|
32
|
-
if [[ -z "$bundler_installed" ]]; then
|
33
|
-
echo "Installing bundler ..."
|
34
|
-
gem install bundler --pre >/dev/null 2>&1
|
35
|
-
else
|
36
|
-
echo "bundler already installed."
|
37
|
-
fi
|
38
|
-
|
39
|
-
echo "Installing gems ..."
|
40
|
-
bundle install >/dev/null 2>&1
|
41
|
-
|
42
|
-
echo "Running benchmarks ..."
|
43
|
-
for bench in $BENCHMARKS; do
|
44
|
-
viiite run --runs=$BENCH_RUN $bench >> $BENCH_OUT 2>/dev/null
|
45
|
-
done
|
6
|
+
BENCH_RUN=1
|
46
7
|
|
8
|
+
echo "Running benchmarks ..."
|
9
|
+
for bench in $BENCHMARKS; do
|
10
|
+
echo " - ${bench}"
|
11
|
+
viiite run --runs=$BENCH_RUN $bench >> $BENCH_OUT 2>/dev/null
|
47
12
|
done
|
48
13
|
|
49
|
-
viiite report $BENCH_OUT -h --regroup=bench,
|
50
|
-
viiite report $BENCH_OUT -h --regroup=
|
51
|
-
viiite report $BENCH_OUT -h --regroup=ruby,bench,type > ${BENCH_REP}.ruby-bench-type.txt
|
52
|
-
viiite report $BENCH_OUT -h --regroup=ruby,type,bench > ${BENCH_REP}.ruby-type-bench.txt
|
53
|
-
viiite report $BENCH_OUT -h --regroup=type,bench,ruby > ${BENCH_REP}.type-bench-ruby.txt
|
54
|
-
viiite report $BENCH_OUT -h --regroup=type,ruby,bench > ${BENCH_REP}.type-ruby-bench.txt
|
14
|
+
viiite report $BENCH_OUT -h --regroup=bench,type > ${BENCH_REP}.bench-type.txt
|
15
|
+
viiite report $BENCH_OUT -h --regroup=type,bench > ${BENCH_REP}.type-bench.txt
|
55
16
|
|
56
17
|
[[ -e "$BENCH_OUT" ]] && rm $BENCH_OUT
|
57
18
|
|
data/io_shuten.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "io_shuten"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1.dev1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Christoph Grabo"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-11-04"
|
13
13
|
s.description = "IO::shuten \u{2013} Use databases as IO handler like you would do with files and streams."
|
14
14
|
s.email = ["chris@dinarrr.com"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,67 +19,20 @@ Gem::Specification.new do |s|
|
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".rspec",
|
22
|
-
".rvmrc",
|
23
|
-
".simplecov",
|
24
22
|
".travis.yml",
|
25
|
-
".yardopts",
|
26
23
|
"Gemfile",
|
27
24
|
"Gemfile.lock",
|
28
25
|
"LICENSE",
|
29
26
|
"LICENSE.de",
|
30
27
|
"README.md",
|
31
28
|
"Rakefile",
|
29
|
+
"benchmark/viiite-template-redis.rb",
|
32
30
|
"benchmark/viiite-template.rb",
|
33
31
|
"benchmarks.sh",
|
34
32
|
"benchmarks/buffer.rb",
|
35
33
|
"benchmarks/memory.rb",
|
36
|
-
"
|
37
|
-
"
|
38
|
-
"doc/IO_shuten/Base.html",
|
39
|
-
"doc/IO_shuten/Base/FileAccessError.html",
|
40
|
-
"doc/IO_shuten/Base/FileNotFoundError.html",
|
41
|
-
"doc/IO_shuten/Base/NodeNameError.html",
|
42
|
-
"doc/IO_shuten/Base/NodeNotFoundError.html",
|
43
|
-
"doc/IO_shuten/Base/NotYetImplemented.html",
|
44
|
-
"doc/IO_shuten/Buffer.html",
|
45
|
-
"doc/IO_shuten/Errors.html",
|
46
|
-
"doc/IO_shuten/Errors/FileAccessError.html",
|
47
|
-
"doc/IO_shuten/Errors/FileNotFoundError.html",
|
48
|
-
"doc/IO_shuten/Errors/NodeExistsError.html",
|
49
|
-
"doc/IO_shuten/Errors/NodeNameError.html",
|
50
|
-
"doc/IO_shuten/Errors/NodeNameExistsError.html",
|
51
|
-
"doc/IO_shuten/Errors/NodeNotFoundError.html",
|
52
|
-
"doc/IO_shuten/Errors/NotYetImplemented.html",
|
53
|
-
"doc/IO_shuten/Memory.html",
|
54
|
-
"doc/IO_shuten/Mongo.html",
|
55
|
-
"doc/IO_shuten/Redis.html",
|
56
|
-
"doc/IO_shuten/Stores.html",
|
57
|
-
"doc/IO_shuten/Stores/BaseContainer.html",
|
58
|
-
"doc/IO_shuten/Stores/Mongo.html",
|
59
|
-
"doc/IO_shuten/Stores/Mongo/Collection.html",
|
60
|
-
"doc/IO_shuten/Stores/Mongo/GridFS.html",
|
61
|
-
"doc/IO_shuten/Stores/Redis.html",
|
62
|
-
"doc/IO_shuten/Stores/Redis/Container.html",
|
63
|
-
"doc/IO_shuten/Stores/Redis/KeyValue.html",
|
64
|
-
"doc/IO_shuten/Stores/Redis/KeyValue/Collection.html",
|
65
|
-
"doc/IO_shuten/Stores/Redis/KeyValue/Single.html",
|
66
|
-
"doc/IO_shuten/Stores/Redis/PubSub.html",
|
67
|
-
"doc/IO_shuten/Zmq.html",
|
68
|
-
"doc/_index.html",
|
69
|
-
"doc/class_list.html",
|
70
|
-
"doc/css/blame.css",
|
71
|
-
"doc/css/common.css",
|
72
|
-
"doc/css/full_list.css",
|
73
|
-
"doc/css/style.css",
|
74
|
-
"doc/file.README.html",
|
75
|
-
"doc/file_list.html",
|
76
|
-
"doc/frames.html",
|
77
|
-
"doc/index.html",
|
78
|
-
"doc/js/app.js",
|
79
|
-
"doc/js/full_list.js",
|
80
|
-
"doc/js/jquery.js",
|
81
|
-
"doc/method_list.html",
|
82
|
-
"doc/top-level-namespace.html",
|
34
|
+
"benchmarks/redis.kvc.rb",
|
35
|
+
"benchmarks/redis.kvs.rb",
|
83
36
|
"io_shuten.gemspec",
|
84
37
|
"lib/io_shuten.rb",
|
85
38
|
"lib/io_shuten/base.rb",
|
@@ -121,76 +74,61 @@ Gem::Specification.new do |s|
|
|
121
74
|
s.homepage = "http://github.com/asaaki/io_shuten"
|
122
75
|
s.licenses = ["MIT"]
|
123
76
|
s.require_paths = ["lib"]
|
124
|
-
s.rubygems_version = "1.8.
|
77
|
+
s.rubygems_version = "1.8.23"
|
125
78
|
s.summary = "IO::shuten \u{2013} Use databases as IO handler. (NOT YET READY FOR PRODUCTION!)"
|
126
79
|
|
127
80
|
if s.respond_to? :specification_version then
|
128
81
|
s.specification_version = 3
|
129
82
|
|
130
83
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
131
|
-
s.add_runtime_dependency(%q<iobuffer>, ["~> 1.
|
132
|
-
s.add_runtime_dependency(%q<hiredis>, ["~> 0.4.
|
133
|
-
s.add_runtime_dependency(%q<redis>, ["~>
|
134
|
-
s.add_runtime_dependency(%q<redis-namespace>, ["
|
84
|
+
s.add_runtime_dependency(%q<iobuffer>, ["~> 1.1.2"])
|
85
|
+
s.add_runtime_dependency(%q<hiredis>, ["~> 0.4.5"])
|
86
|
+
s.add_runtime_dependency(%q<redis>, ["~> 3.0.2"])
|
87
|
+
s.add_runtime_dependency(%q<redis-namespace>, ["~> 1.2.1"])
|
135
88
|
s.add_runtime_dependency(%q<bson_ext>, ["~> 1.5.2"])
|
136
89
|
s.add_runtime_dependency(%q<mongo>, ["~> 1.5.2"])
|
137
|
-
s.add_runtime_dependency(%q<ffi>, ["
|
138
|
-
s.add_runtime_dependency(%q<ffi-rzmq>, ["
|
90
|
+
s.add_runtime_dependency(%q<ffi>, ["~> 1.1.5"])
|
91
|
+
s.add_runtime_dependency(%q<ffi-rzmq>, ["~> 0.9.6"])
|
139
92
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
140
93
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
141
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.
|
142
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
143
|
-
s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
|
144
|
-
s.add_development_dependency(%q<simplecov-csv>, [">= 0"])
|
145
|
-
s.add_development_dependency(%q<redcarpet>, [">= 0"])
|
146
|
-
s.add_development_dependency(%q<yard>, [">= 0"])
|
147
|
-
s.add_development_dependency(%q<yard-blame>, [">= 0"])
|
94
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.11.0"])
|
148
95
|
s.add_development_dependency(%q<pry>, [">= 0"])
|
96
|
+
s.add_development_dependency(%q<pry-doc>, [">= 0"])
|
149
97
|
s.add_development_dependency(%q<alf>, [">= 0"])
|
150
98
|
s.add_development_dependency(%q<fastercsv>, [">= 0"])
|
151
99
|
s.add_development_dependency(%q<viiite>, [">= 0"])
|
152
100
|
else
|
153
|
-
s.add_dependency(%q<iobuffer>, ["~> 1.
|
154
|
-
s.add_dependency(%q<hiredis>, ["~> 0.4.
|
155
|
-
s.add_dependency(%q<redis>, ["~>
|
156
|
-
s.add_dependency(%q<redis-namespace>, ["
|
101
|
+
s.add_dependency(%q<iobuffer>, ["~> 1.1.2"])
|
102
|
+
s.add_dependency(%q<hiredis>, ["~> 0.4.5"])
|
103
|
+
s.add_dependency(%q<redis>, ["~> 3.0.2"])
|
104
|
+
s.add_dependency(%q<redis-namespace>, ["~> 1.2.1"])
|
157
105
|
s.add_dependency(%q<bson_ext>, ["~> 1.5.2"])
|
158
106
|
s.add_dependency(%q<mongo>, ["~> 1.5.2"])
|
159
|
-
s.add_dependency(%q<ffi>, ["
|
160
|
-
s.add_dependency(%q<ffi-rzmq>, ["
|
107
|
+
s.add_dependency(%q<ffi>, ["~> 1.1.5"])
|
108
|
+
s.add_dependency(%q<ffi-rzmq>, ["~> 0.9.6"])
|
161
109
|
s.add_dependency(%q<rake>, [">= 0"])
|
162
110
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
163
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
164
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
165
|
-
s.add_dependency(%q<simplecov-rcov>, [">= 0"])
|
166
|
-
s.add_dependency(%q<simplecov-csv>, [">= 0"])
|
167
|
-
s.add_dependency(%q<redcarpet>, [">= 0"])
|
168
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
169
|
-
s.add_dependency(%q<yard-blame>, [">= 0"])
|
111
|
+
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
170
112
|
s.add_dependency(%q<pry>, [">= 0"])
|
113
|
+
s.add_dependency(%q<pry-doc>, [">= 0"])
|
171
114
|
s.add_dependency(%q<alf>, [">= 0"])
|
172
115
|
s.add_dependency(%q<fastercsv>, [">= 0"])
|
173
116
|
s.add_dependency(%q<viiite>, [">= 0"])
|
174
117
|
end
|
175
118
|
else
|
176
|
-
s.add_dependency(%q<iobuffer>, ["~> 1.
|
177
|
-
s.add_dependency(%q<hiredis>, ["~> 0.4.
|
178
|
-
s.add_dependency(%q<redis>, ["~>
|
179
|
-
s.add_dependency(%q<redis-namespace>, ["
|
119
|
+
s.add_dependency(%q<iobuffer>, ["~> 1.1.2"])
|
120
|
+
s.add_dependency(%q<hiredis>, ["~> 0.4.5"])
|
121
|
+
s.add_dependency(%q<redis>, ["~> 3.0.2"])
|
122
|
+
s.add_dependency(%q<redis-namespace>, ["~> 1.2.1"])
|
180
123
|
s.add_dependency(%q<bson_ext>, ["~> 1.5.2"])
|
181
124
|
s.add_dependency(%q<mongo>, ["~> 1.5.2"])
|
182
|
-
s.add_dependency(%q<ffi>, ["
|
183
|
-
s.add_dependency(%q<ffi-rzmq>, ["
|
125
|
+
s.add_dependency(%q<ffi>, ["~> 1.1.5"])
|
126
|
+
s.add_dependency(%q<ffi-rzmq>, ["~> 0.9.6"])
|
184
127
|
s.add_dependency(%q<rake>, [">= 0"])
|
185
128
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
186
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
187
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
188
|
-
s.add_dependency(%q<simplecov-rcov>, [">= 0"])
|
189
|
-
s.add_dependency(%q<simplecov-csv>, [">= 0"])
|
190
|
-
s.add_dependency(%q<redcarpet>, [">= 0"])
|
191
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
192
|
-
s.add_dependency(%q<yard-blame>, [">= 0"])
|
129
|
+
s.add_dependency(%q<rspec>, ["~> 2.11.0"])
|
193
130
|
s.add_dependency(%q<pry>, [">= 0"])
|
131
|
+
s.add_dependency(%q<pry-doc>, [">= 0"])
|
194
132
|
s.add_dependency(%q<alf>, [">= 0"])
|
195
133
|
s.add_dependency(%q<fastercsv>, [">= 0"])
|
196
134
|
s.add_dependency(%q<viiite>, [">= 0"])
|
data/lib/io_shuten/redis.rb
CHANGED
@@ -24,7 +24,7 @@ module IO_shuten
|
|
24
24
|
|
25
25
|
# Global redis client instance for the pool
|
26
26
|
# @return [Object] Redis instance
|
27
|
-
@@redis = ::Redis.new
|
27
|
+
@@redis = ::Redis::Namespace.new(:io_shuten, :redis => ::Redis.new)
|
28
28
|
|
29
29
|
# @param [String] node_name
|
30
30
|
# @param [Symbol] node_name
|
@@ -4,6 +4,10 @@ module IO_shuten::Stores::Redis::KeyValue
|
|
4
4
|
# Redis Backend type for storing every data piece into its own key (namespace)
|
5
5
|
module Collection
|
6
6
|
|
7
|
+
def counter_name
|
8
|
+
"#{@node_name}:#{"%016d" % '0'}"
|
9
|
+
end
|
10
|
+
|
7
11
|
def read
|
8
12
|
result = read_collection
|
9
13
|
result.join
|
@@ -12,14 +16,22 @@ module IO_shuten::Stores::Redis::KeyValue
|
|
12
16
|
def read_collection
|
13
17
|
coll = @redis.keys("#{@node_name}:*").sort
|
14
18
|
coll.inject([]) do |store, key|
|
15
|
-
store << (@redis.get(key))
|
19
|
+
store << (@redis.get(key)) unless key == counter_name
|
16
20
|
store
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
20
24
|
def write data
|
21
|
-
counter =
|
22
|
-
|
25
|
+
counter = self.size + 1
|
26
|
+
key = "#{@node_name}:#{"%016d" % counter}"
|
27
|
+
@redis.multi do
|
28
|
+
@redis.set key, data
|
29
|
+
@redis.incr counter_name
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def size
|
34
|
+
@redis.get(counter_name).to_i || 0
|
23
35
|
end
|
24
36
|
|
25
37
|
def clear!
|