io_shuten 0.1.0.dev7 → 0.1.1.dev1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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!
|