redis 3.3.3 → 5.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +280 -12
  3. data/README.md +141 -147
  4. data/lib/redis/client.rb +77 -539
  5. data/lib/redis/commands/bitmaps.rb +66 -0
  6. data/lib/redis/commands/cluster.rb +28 -0
  7. data/lib/redis/commands/connection.rb +53 -0
  8. data/lib/redis/commands/geo.rb +84 -0
  9. data/lib/redis/commands/hashes.rb +254 -0
  10. data/lib/redis/commands/hyper_log_log.rb +37 -0
  11. data/lib/redis/commands/keys.rb +437 -0
  12. data/lib/redis/commands/lists.rb +285 -0
  13. data/lib/redis/commands/pubsub.rb +54 -0
  14. data/lib/redis/commands/scripting.rb +114 -0
  15. data/lib/redis/commands/server.rb +188 -0
  16. data/lib/redis/commands/sets.rb +214 -0
  17. data/lib/redis/commands/sorted_sets.rb +818 -0
  18. data/lib/redis/commands/streams.rb +384 -0
  19. data/lib/redis/commands/strings.rb +314 -0
  20. data/lib/redis/commands/transactions.rb +115 -0
  21. data/lib/redis/commands.rb +235 -0
  22. data/lib/redis/distributed.rb +300 -108
  23. data/lib/redis/errors.rb +22 -1
  24. data/lib/redis/hash_ring.rb +36 -79
  25. data/lib/redis/pipeline.rb +69 -83
  26. data/lib/redis/subscribe.rb +26 -19
  27. data/lib/redis/version.rb +3 -1
  28. data/lib/redis.rb +113 -2685
  29. metadata +40 -218
  30. data/.gitignore +0 -16
  31. data/.travis/Gemfile +0 -11
  32. data/.travis.yml +0 -89
  33. data/.yardopts +0 -3
  34. data/Gemfile +0 -4
  35. data/Rakefile +0 -87
  36. data/benchmarking/logging.rb +0 -71
  37. data/benchmarking/pipeline.rb +0 -51
  38. data/benchmarking/speed.rb +0 -21
  39. data/benchmarking/suite.rb +0 -24
  40. data/benchmarking/worker.rb +0 -71
  41. data/examples/basic.rb +0 -15
  42. data/examples/consistency.rb +0 -114
  43. data/examples/dist_redis.rb +0 -43
  44. data/examples/incr-decr.rb +0 -17
  45. data/examples/list.rb +0 -26
  46. data/examples/pubsub.rb +0 -37
  47. data/examples/sentinel/sentinel.conf +0 -9
  48. data/examples/sentinel/start +0 -49
  49. data/examples/sentinel.rb +0 -41
  50. data/examples/sets.rb +0 -36
  51. data/examples/unicorn/config.ru +0 -3
  52. data/examples/unicorn/unicorn.rb +0 -20
  53. data/lib/redis/connection/command_helper.rb +0 -44
  54. data/lib/redis/connection/hiredis.rb +0 -66
  55. data/lib/redis/connection/registry.rb +0 -12
  56. data/lib/redis/connection/ruby.rb +0 -429
  57. data/lib/redis/connection/synchrony.rb +0 -133
  58. data/lib/redis/connection.rb +0 -9
  59. data/redis.gemspec +0 -44
  60. data/test/bitpos_test.rb +0 -69
  61. data/test/blocking_commands_test.rb +0 -42
  62. data/test/client_test.rb +0 -59
  63. data/test/command_map_test.rb +0 -30
  64. data/test/commands_on_hashes_test.rb +0 -21
  65. data/test/commands_on_hyper_log_log_test.rb +0 -21
  66. data/test/commands_on_lists_test.rb +0 -20
  67. data/test/commands_on_sets_test.rb +0 -77
  68. data/test/commands_on_sorted_sets_test.rb +0 -137
  69. data/test/commands_on_strings_test.rb +0 -101
  70. data/test/commands_on_value_types_test.rb +0 -133
  71. data/test/connection_handling_test.rb +0 -277
  72. data/test/db/.gitkeep +0 -0
  73. data/test/distributed_blocking_commands_test.rb +0 -46
  74. data/test/distributed_commands_on_hashes_test.rb +0 -10
  75. data/test/distributed_commands_on_hyper_log_log_test.rb +0 -33
  76. data/test/distributed_commands_on_lists_test.rb +0 -22
  77. data/test/distributed_commands_on_sets_test.rb +0 -83
  78. data/test/distributed_commands_on_sorted_sets_test.rb +0 -18
  79. data/test/distributed_commands_on_strings_test.rb +0 -59
  80. data/test/distributed_commands_on_value_types_test.rb +0 -95
  81. data/test/distributed_commands_requiring_clustering_test.rb +0 -164
  82. data/test/distributed_connection_handling_test.rb +0 -23
  83. data/test/distributed_internals_test.rb +0 -79
  84. data/test/distributed_key_tags_test.rb +0 -52
  85. data/test/distributed_persistence_control_commands_test.rb +0 -26
  86. data/test/distributed_publish_subscribe_test.rb +0 -92
  87. data/test/distributed_remote_server_control_commands_test.rb +0 -66
  88. data/test/distributed_scripting_test.rb +0 -102
  89. data/test/distributed_sorting_test.rb +0 -20
  90. data/test/distributed_test.rb +0 -58
  91. data/test/distributed_transactions_test.rb +0 -32
  92. data/test/encoding_test.rb +0 -18
  93. data/test/error_replies_test.rb +0 -59
  94. data/test/fork_safety_test.rb +0 -65
  95. data/test/helper.rb +0 -232
  96. data/test/helper_test.rb +0 -24
  97. data/test/internals_test.rb +0 -457
  98. data/test/lint/blocking_commands.rb +0 -150
  99. data/test/lint/hashes.rb +0 -162
  100. data/test/lint/hyper_log_log.rb +0 -60
  101. data/test/lint/lists.rb +0 -143
  102. data/test/lint/sets.rb +0 -140
  103. data/test/lint/sorted_sets.rb +0 -316
  104. data/test/lint/strings.rb +0 -260
  105. data/test/lint/value_types.rb +0 -122
  106. data/test/persistence_control_commands_test.rb +0 -26
  107. data/test/pipelining_commands_test.rb +0 -242
  108. data/test/publish_subscribe_test.rb +0 -282
  109. data/test/remote_server_control_commands_test.rb +0 -118
  110. data/test/scanning_test.rb +0 -413
  111. data/test/scripting_test.rb +0 -78
  112. data/test/sentinel_command_test.rb +0 -80
  113. data/test/sentinel_test.rb +0 -255
  114. data/test/sorting_test.rb +0 -59
  115. data/test/ssl_test.rb +0 -73
  116. data/test/support/connection/hiredis.rb +0 -1
  117. data/test/support/connection/ruby.rb +0 -1
  118. data/test/support/connection/synchrony.rb +0 -17
  119. data/test/support/redis_mock.rb +0 -130
  120. data/test/support/ssl/gen_certs.sh +0 -31
  121. data/test/support/ssl/trusted-ca.crt +0 -25
  122. data/test/support/ssl/trusted-ca.key +0 -27
  123. data/test/support/ssl/trusted-cert.crt +0 -81
  124. data/test/support/ssl/trusted-cert.key +0 -28
  125. data/test/support/ssl/untrusted-ca.crt +0 -26
  126. data/test/support/ssl/untrusted-ca.key +0 -27
  127. data/test/support/ssl/untrusted-cert.crt +0 -82
  128. data/test/support/ssl/untrusted-cert.key +0 -28
  129. data/test/support/wire/synchrony.rb +0 -24
  130. data/test/support/wire/thread.rb +0 -5
  131. data/test/synchrony_driver.rb +0 -88
  132. data/test/test.conf.erb +0 -9
  133. data/test/thread_safety_test.rb +0 -62
  134. data/test/transactions_test.rb +0 -264
  135. data/test/unknown_commands_test.rb +0 -14
  136. data/test/url_param_test.rb +0 -138
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.3
4
+ version: 5.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezra Zygmuntowicz
@@ -13,266 +13,88 @@ authors:
13
13
  - Michel Martens
14
14
  - Damian Janowski
15
15
  - Pieter Noordhuis
16
- autorequire:
16
+ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2017-01-23 00:00:00.000000000 Z
19
+ date: 2022-09-22 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: rake
22
+ name: redis-client
23
23
  requirement: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - <
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 11.0.0
28
- type: :development
27
+ version: 0.9.0
28
+ type: :runtime
29
29
  prerelease: false
30
30
  version_requirements: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - <
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 11.0.0
35
- - !ruby/object:Gem::Dependency
36
- name: test-unit
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - '='
40
- - !ruby/object:Gem::Version
41
- version: 3.1.5
42
- type: :development
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - '='
47
- - !ruby/object:Gem::Version
48
- version: 3.1.5
34
+ version: 0.9.0
49
35
  description: |2
50
36
  A Ruby client that tries to match Redis' API one-to-one, while still
51
- providing an idiomatic interface. It features thread-safety,
52
- client-side sharding, pipelining, and an obsession for performance.
37
+ providing an idiomatic interface.
53
38
  email:
54
39
  - redis-db@googlegroups.com
55
40
  executables: []
56
41
  extensions: []
57
42
  extra_rdoc_files: []
58
43
  files:
59
- - .gitignore
60
- - .travis.yml
61
- - .travis/Gemfile
62
- - .yardopts
63
44
  - CHANGELOG.md
64
- - Gemfile
65
45
  - LICENSE
66
46
  - README.md
67
- - Rakefile
68
- - benchmarking/logging.rb
69
- - benchmarking/pipeline.rb
70
- - benchmarking/speed.rb
71
- - benchmarking/suite.rb
72
- - benchmarking/worker.rb
73
- - examples/basic.rb
74
- - examples/consistency.rb
75
- - examples/dist_redis.rb
76
- - examples/incr-decr.rb
77
- - examples/list.rb
78
- - examples/pubsub.rb
79
- - examples/sentinel.rb
80
- - examples/sentinel/sentinel.conf
81
- - examples/sentinel/start
82
- - examples/sets.rb
83
- - examples/unicorn/config.ru
84
- - examples/unicorn/unicorn.rb
85
47
  - lib/redis.rb
86
48
  - lib/redis/client.rb
87
- - lib/redis/connection.rb
88
- - lib/redis/connection/command_helper.rb
89
- - lib/redis/connection/hiredis.rb
90
- - lib/redis/connection/registry.rb
91
- - lib/redis/connection/ruby.rb
92
- - lib/redis/connection/synchrony.rb
49
+ - lib/redis/commands.rb
50
+ - lib/redis/commands/bitmaps.rb
51
+ - lib/redis/commands/cluster.rb
52
+ - lib/redis/commands/connection.rb
53
+ - lib/redis/commands/geo.rb
54
+ - lib/redis/commands/hashes.rb
55
+ - lib/redis/commands/hyper_log_log.rb
56
+ - lib/redis/commands/keys.rb
57
+ - lib/redis/commands/lists.rb
58
+ - lib/redis/commands/pubsub.rb
59
+ - lib/redis/commands/scripting.rb
60
+ - lib/redis/commands/server.rb
61
+ - lib/redis/commands/sets.rb
62
+ - lib/redis/commands/sorted_sets.rb
63
+ - lib/redis/commands/streams.rb
64
+ - lib/redis/commands/strings.rb
65
+ - lib/redis/commands/transactions.rb
93
66
  - lib/redis/distributed.rb
94
67
  - lib/redis/errors.rb
95
68
  - lib/redis/hash_ring.rb
96
69
  - lib/redis/pipeline.rb
97
70
  - lib/redis/subscribe.rb
98
71
  - lib/redis/version.rb
99
- - redis.gemspec
100
- - test/bitpos_test.rb
101
- - test/blocking_commands_test.rb
102
- - test/client_test.rb
103
- - test/command_map_test.rb
104
- - test/commands_on_hashes_test.rb
105
- - test/commands_on_hyper_log_log_test.rb
106
- - test/commands_on_lists_test.rb
107
- - test/commands_on_sets_test.rb
108
- - test/commands_on_sorted_sets_test.rb
109
- - test/commands_on_strings_test.rb
110
- - test/commands_on_value_types_test.rb
111
- - test/connection_handling_test.rb
112
- - test/db/.gitkeep
113
- - test/distributed_blocking_commands_test.rb
114
- - test/distributed_commands_on_hashes_test.rb
115
- - test/distributed_commands_on_hyper_log_log_test.rb
116
- - test/distributed_commands_on_lists_test.rb
117
- - test/distributed_commands_on_sets_test.rb
118
- - test/distributed_commands_on_sorted_sets_test.rb
119
- - test/distributed_commands_on_strings_test.rb
120
- - test/distributed_commands_on_value_types_test.rb
121
- - test/distributed_commands_requiring_clustering_test.rb
122
- - test/distributed_connection_handling_test.rb
123
- - test/distributed_internals_test.rb
124
- - test/distributed_key_tags_test.rb
125
- - test/distributed_persistence_control_commands_test.rb
126
- - test/distributed_publish_subscribe_test.rb
127
- - test/distributed_remote_server_control_commands_test.rb
128
- - test/distributed_scripting_test.rb
129
- - test/distributed_sorting_test.rb
130
- - test/distributed_test.rb
131
- - test/distributed_transactions_test.rb
132
- - test/encoding_test.rb
133
- - test/error_replies_test.rb
134
- - test/fork_safety_test.rb
135
- - test/helper.rb
136
- - test/helper_test.rb
137
- - test/internals_test.rb
138
- - test/lint/blocking_commands.rb
139
- - test/lint/hashes.rb
140
- - test/lint/hyper_log_log.rb
141
- - test/lint/lists.rb
142
- - test/lint/sets.rb
143
- - test/lint/sorted_sets.rb
144
- - test/lint/strings.rb
145
- - test/lint/value_types.rb
146
- - test/persistence_control_commands_test.rb
147
- - test/pipelining_commands_test.rb
148
- - test/publish_subscribe_test.rb
149
- - test/remote_server_control_commands_test.rb
150
- - test/scanning_test.rb
151
- - test/scripting_test.rb
152
- - test/sentinel_command_test.rb
153
- - test/sentinel_test.rb
154
- - test/sorting_test.rb
155
- - test/ssl_test.rb
156
- - test/support/connection/hiredis.rb
157
- - test/support/connection/ruby.rb
158
- - test/support/connection/synchrony.rb
159
- - test/support/redis_mock.rb
160
- - test/support/ssl/gen_certs.sh
161
- - test/support/ssl/trusted-ca.crt
162
- - test/support/ssl/trusted-ca.key
163
- - test/support/ssl/trusted-cert.crt
164
- - test/support/ssl/trusted-cert.key
165
- - test/support/ssl/untrusted-ca.crt
166
- - test/support/ssl/untrusted-ca.key
167
- - test/support/ssl/untrusted-cert.crt
168
- - test/support/ssl/untrusted-cert.key
169
- - test/support/wire/synchrony.rb
170
- - test/support/wire/thread.rb
171
- - test/synchrony_driver.rb
172
- - test/test.conf.erb
173
- - test/thread_safety_test.rb
174
- - test/transactions_test.rb
175
- - test/unknown_commands_test.rb
176
- - test/url_param_test.rb
177
72
  homepage: https://github.com/redis/redis-rb
178
73
  licenses:
179
74
  - MIT
180
- metadata: {}
181
- post_install_message:
75
+ metadata:
76
+ bug_tracker_uri: https://github.com/redis/redis-rb/issues
77
+ changelog_uri: https://github.com/redis/redis-rb/blob/master/CHANGELOG.md
78
+ documentation_uri: https://www.rubydoc.info/gems/redis/5.0.5
79
+ homepage_uri: https://github.com/redis/redis-rb
80
+ source_code_uri: https://github.com/redis/redis-rb/tree/v5.0.5
81
+ post_install_message:
182
82
  rdoc_options: []
183
83
  require_paths:
184
84
  - lib
185
85
  required_ruby_version: !ruby/object:Gem::Requirement
186
86
  requirements:
187
- - - '>='
87
+ - - ">="
188
88
  - !ruby/object:Gem::Version
189
- version: '0'
89
+ version: 2.5.0
190
90
  required_rubygems_version: !ruby/object:Gem::Requirement
191
91
  requirements:
192
- - - '>='
92
+ - - ">="
193
93
  - !ruby/object:Gem::Version
194
94
  version: '0'
195
95
  requirements: []
196
- rubyforge_project:
197
- rubygems_version: 2.4.6
198
- signing_key:
96
+ rubygems_version: 3.1.2
97
+ signing_key:
199
98
  specification_version: 4
200
99
  summary: A Ruby client library for Redis
201
- test_files:
202
- - test/bitpos_test.rb
203
- - test/blocking_commands_test.rb
204
- - test/client_test.rb
205
- - test/command_map_test.rb
206
- - test/commands_on_hashes_test.rb
207
- - test/commands_on_hyper_log_log_test.rb
208
- - test/commands_on_lists_test.rb
209
- - test/commands_on_sets_test.rb
210
- - test/commands_on_sorted_sets_test.rb
211
- - test/commands_on_strings_test.rb
212
- - test/commands_on_value_types_test.rb
213
- - test/connection_handling_test.rb
214
- - test/db/.gitkeep
215
- - test/distributed_blocking_commands_test.rb
216
- - test/distributed_commands_on_hashes_test.rb
217
- - test/distributed_commands_on_hyper_log_log_test.rb
218
- - test/distributed_commands_on_lists_test.rb
219
- - test/distributed_commands_on_sets_test.rb
220
- - test/distributed_commands_on_sorted_sets_test.rb
221
- - test/distributed_commands_on_strings_test.rb
222
- - test/distributed_commands_on_value_types_test.rb
223
- - test/distributed_commands_requiring_clustering_test.rb
224
- - test/distributed_connection_handling_test.rb
225
- - test/distributed_internals_test.rb
226
- - test/distributed_key_tags_test.rb
227
- - test/distributed_persistence_control_commands_test.rb
228
- - test/distributed_publish_subscribe_test.rb
229
- - test/distributed_remote_server_control_commands_test.rb
230
- - test/distributed_scripting_test.rb
231
- - test/distributed_sorting_test.rb
232
- - test/distributed_test.rb
233
- - test/distributed_transactions_test.rb
234
- - test/encoding_test.rb
235
- - test/error_replies_test.rb
236
- - test/fork_safety_test.rb
237
- - test/helper.rb
238
- - test/helper_test.rb
239
- - test/internals_test.rb
240
- - test/lint/blocking_commands.rb
241
- - test/lint/hashes.rb
242
- - test/lint/hyper_log_log.rb
243
- - test/lint/lists.rb
244
- - test/lint/sets.rb
245
- - test/lint/sorted_sets.rb
246
- - test/lint/strings.rb
247
- - test/lint/value_types.rb
248
- - test/persistence_control_commands_test.rb
249
- - test/pipelining_commands_test.rb
250
- - test/publish_subscribe_test.rb
251
- - test/remote_server_control_commands_test.rb
252
- - test/scanning_test.rb
253
- - test/scripting_test.rb
254
- - test/sentinel_command_test.rb
255
- - test/sentinel_test.rb
256
- - test/sorting_test.rb
257
- - test/ssl_test.rb
258
- - test/support/connection/hiredis.rb
259
- - test/support/connection/ruby.rb
260
- - test/support/connection/synchrony.rb
261
- - test/support/redis_mock.rb
262
- - test/support/ssl/gen_certs.sh
263
- - test/support/ssl/trusted-ca.crt
264
- - test/support/ssl/trusted-ca.key
265
- - test/support/ssl/trusted-cert.crt
266
- - test/support/ssl/trusted-cert.key
267
- - test/support/ssl/untrusted-ca.crt
268
- - test/support/ssl/untrusted-ca.key
269
- - test/support/ssl/untrusted-cert.crt
270
- - test/support/ssl/untrusted-cert.key
271
- - test/support/wire/synchrony.rb
272
- - test/support/wire/thread.rb
273
- - test/synchrony_driver.rb
274
- - test/test.conf.erb
275
- - test/thread_safety_test.rb
276
- - test/transactions_test.rb
277
- - test/unknown_commands_test.rb
278
- - test/url_param_test.rb
100
+ test_files: []
data/.gitignore DELETED
@@ -1,16 +0,0 @@
1
- *.rdb
2
- *.swp
3
- Gemfile.lock
4
- *.gem
5
- /tmp/
6
- /.idea
7
- /.yardoc
8
- /coverage/*
9
- /doc/
10
- /examples/sentinel/sentinel.conf
11
- /nohup.out
12
- /pkg/*
13
- /rdsrv
14
- /redis/*
15
- /test/db
16
- /test/test.conf
data/.travis/Gemfile DELETED
@@ -1,11 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec :path => "../"
4
-
5
- case ENV["conn"]
6
- when "hiredis"
7
- gem "hiredis"
8
- when "synchrony"
9
- gem "hiredis"
10
- gem "em-synchrony"
11
- end
data/.travis.yml DELETED
@@ -1,89 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 1.8.7
5
- - 1.9.3
6
- - 2.0
7
- - 2.1
8
- - 2.2
9
- - 2.3.0
10
- - jruby-18mode
11
- - jruby-19mode
12
- - jruby-9.0.5.0
13
- - rbx-2
14
-
15
- gemfile: ".travis/Gemfile"
16
-
17
- sudo: false
18
-
19
- env:
20
- global:
21
- - VERBOSE=true
22
- - TIMEOUT=1
23
- matrix:
24
- - conn=ruby REDIS_BRANCH=3.0
25
- - conn=ruby REDIS_BRANCH=3.2
26
- - conn=hiredis REDIS_BRANCH=3.0
27
- - conn=hiredis REDIS_BRANCH=3.2
28
- - conn=synchrony REDIS_BRANCH=3.0
29
- - conn=synchrony REDIS_BRANCH=3.2
30
- - conn=ruby REDIS_BRANCH=unstable
31
-
32
- branches:
33
- only:
34
- - master
35
-
36
- matrix:
37
- exclude:
38
- # hiredis
39
- - rvm: jruby-18mode
40
- gemfile: .travis/Gemfile
41
- env: conn=hiredis REDIS_BRANCH=3.0
42
- - rvm: jruby-18mode
43
- gemfile: .travis/Gemfile
44
- env: conn=hiredis REDIS_BRANCH=3.2
45
- - rvm: jruby-19mode
46
- gemfile: .travis/Gemfile
47
- env: conn=hiredis REDIS_BRANCH=3.0
48
- - rvm: jruby-19mode
49
- gemfile: .travis/Gemfile
50
- env: conn=hiredis REDIS_BRANCH=3.2
51
- - rvm: jruby-9.0.5.0
52
- gemfile: .travis/Gemfile
53
- env: conn=hiredis REDIS_BRANCH=3.0
54
- - rvm: jruby-9.0.5.0
55
- gemfile: .travis/Gemfile
56
- env: conn=hiredis REDIS_BRANCH=3.2
57
-
58
- # synchrony
59
- - rvm: 1.8.7
60
- gemfile: .travis/Gemfile
61
- env: conn=synchrony REDIS_BRANCH=3.0
62
- - rvm: 1.8.7
63
- gemfile: .travis/Gemfile
64
- env: conn=synchrony REDIS_BRANCH=3.2
65
- - rvm: jruby-18mode
66
- gemfile: .travis/Gemfile
67
- env: conn=synchrony REDIS_BRANCH=3.0
68
- - rvm: jruby-18mode
69
- gemfile: .travis/Gemfile
70
- env: conn=synchrony REDIS_BRANCH=3.2
71
- - rvm: jruby-19mode
72
- gemfile: .travis/Gemfile
73
- env: conn=synchrony REDIS_BRANCH=3.0
74
- - rvm: jruby-19mode
75
- gemfile: .travis/Gemfile
76
- env: conn=synchrony REDIS_BRANCH=3.2
77
- - rvm: jruby-9.0.5.0
78
- gemfile: .travis/Gemfile
79
- env: conn=synchrony REDIS_BRANCH=3.0
80
- - rvm: jruby-9.0.5.0
81
- gemfile: .travis/Gemfile
82
- env: conn=synchrony REDIS_BRANCH=3.2
83
- allow_failures:
84
- - rvm: rbx-2
85
-
86
- notifications:
87
- irc:
88
- - irc.freenode.net#redis-rb
89
- email: false
data/.yardopts DELETED
@@ -1,3 +0,0 @@
1
- --exclude redis/connection
2
- --exclude redis/compat
3
- --markup markdown
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- # encoding: utf-8
2
- source 'https://rubygems.org'
3
-
4
- gemspec
data/Rakefile DELETED
@@ -1,87 +0,0 @@
1
- require "rake/testtask"
2
-
3
- ENV["REDIS_BRANCH"] ||= "unstable"
4
-
5
- REDIS_DIR = File.expand_path(File.join("..", "test"), __FILE__)
6
- REDIS_CNF = File.join(REDIS_DIR, "test.conf")
7
- REDIS_CNF_TEMPLATE = File.join(REDIS_DIR, "test.conf.erb")
8
- REDIS_PID = File.join(REDIS_DIR, "db", "redis.pid")
9
- REDIS_LOG = File.join(REDIS_DIR, "db", "redis.log")
10
- REDIS_SOCKET = File.join(REDIS_DIR, "db", "redis.sock")
11
- BINARY = "tmp/redis-#{ENV["REDIS_BRANCH"]}/src/redis-server"
12
-
13
- task :default => :run
14
-
15
- desc "Run tests and manage server start/stop"
16
- task :run => [:start, :test, :stop]
17
-
18
- desc "Start the Redis server"
19
- task :start => [BINARY, REDIS_CNF] do
20
- sh "#{BINARY} --version"
21
-
22
- redis_running = \
23
- begin
24
- File.exists?(REDIS_PID) && Process.kill(0, File.read(REDIS_PID).to_i)
25
- rescue Errno::ESRCH
26
- FileUtils.rm REDIS_PID
27
- false
28
- end
29
-
30
- unless redis_running
31
- unless system("#{BINARY} #{REDIS_CNF}")
32
- abort "could not start redis-server"
33
- end
34
- end
35
-
36
- at_exit do
37
- Rake::Task["stop"].invoke
38
- end
39
- end
40
-
41
- desc "Stop the Redis server"
42
- task :stop do
43
- if File.exists?(REDIS_PID)
44
- Process.kill "INT", File.read(REDIS_PID).to_i
45
- FileUtils.rm REDIS_PID
46
- end
47
- end
48
-
49
- desc "Clean up testing artifacts"
50
- task :clean do
51
- FileUtils.rm_f(BINARY)
52
- FileUtils.rm_f(REDIS_CNF)
53
- end
54
-
55
- file BINARY do
56
- branch = ENV.fetch("REDIS_BRANCH")
57
-
58
- sh <<-SH
59
- mkdir -p tmp;
60
- cd tmp;
61
- rm -rf redis-#{branch};
62
- wget https://github.com/antirez/redis/archive/#{branch}.tar.gz -O #{branch}.tar.gz;
63
- tar xf #{branch}.tar.gz;
64
- cd redis-#{branch};
65
- make
66
- SH
67
- end
68
-
69
- file REDIS_CNF => [REDIS_CNF_TEMPLATE, __FILE__] do |t|
70
- require 'erb'
71
-
72
- erb = t.prerequisites[0]
73
- template = File.read(erb)
74
-
75
- File.open(REDIS_CNF, 'w') do |file|
76
- file.puts "\# This file was auto-generated at #{Time.now}",
77
- "\# from (#{erb})",
78
- "\#"
79
- conf = ERB.new(template).result
80
- file << conf
81
- end
82
- end
83
-
84
- Rake::TestTask.new do |t|
85
- t.options = "-v" if $VERBOSE
86
- t.test_files = FileList["test/*_test.rb"]
87
- end
@@ -1,71 +0,0 @@
1
- # Run with
2
- #
3
- # $ ruby -Ilib benchmarking/logging.rb
4
- #
5
-
6
- begin
7
- require "bench"
8
- rescue LoadError
9
- $stderr.puts "`gem install bench` and try again."
10
- exit 1
11
- end
12
-
13
- require "redis"
14
- require "logger"
15
-
16
- def log(level, namespace = nil)
17
- logger = (namespace || Kernel).const_get(:Logger).new("/dev/null")
18
- logger.level = (namespace || Logger).const_get(level)
19
- logger
20
- end
21
-
22
- def stress(redis)
23
- redis.flushdb
24
-
25
- n = (ARGV.shift || 2000).to_i
26
-
27
- n.times do |i|
28
- key = "foo:#{i}"
29
- redis.set key, i
30
- redis.get key
31
- end
32
- end
33
-
34
- default = Redis.new
35
-
36
- logging_redises = [
37
- Redis.new(:logger => log(:DEBUG)),
38
- Redis.new(:logger => log(:INFO)),
39
- ]
40
-
41
- begin
42
- require "log4r"
43
-
44
- logging_redises += [
45
- Redis.new(:logger => log(:DEBUG, Log4r)),
46
- Redis.new(:logger => log(:INFO, Log4r)),
47
- ]
48
- rescue LoadError
49
- $stderr.puts "Log4r not installed. `gem install log4r` if you want to compare it against Ruby's Logger (spoiler: it's much faster)."
50
- end
51
-
52
- benchmark "Default options (no logger)" do
53
- stress(default)
54
- end
55
-
56
- logging_redises.each do |redis|
57
- logger = redis.client.logger
58
-
59
- case logger
60
- when Logger
61
- level = Logger::SEV_LABEL[logger.level]
62
- when Log4r::Logger
63
- level = logger.levels[logger.level]
64
- end
65
-
66
- benchmark "#{logger.class} on #{level}" do
67
- stress(redis)
68
- end
69
- end
70
-
71
- run 10
@@ -1,51 +0,0 @@
1
- require "benchmark"
2
-
3
- $:.push File.join(File.dirname(__FILE__), 'lib')
4
-
5
- require 'redis'
6
-
7
- ITERATIONS = 10000
8
-
9
- @r = Redis.new
10
-
11
- Benchmark.bmbm do |benchmark|
12
- benchmark.report("set") do
13
- @r.flushdb
14
-
15
- ITERATIONS.times do |i|
16
- @r.set("foo#{i}", "Hello world!")
17
- @r.get("foo#{i}")
18
- end
19
- end
20
-
21
- benchmark.report("set (pipelined)") do
22
- @r.flushdb
23
-
24
- @r.pipelined do
25
- ITERATIONS.times do |i|
26
- @r.set("foo#{i}", "Hello world!")
27
- @r.get("foo#{i}")
28
- end
29
- end
30
- end
31
-
32
- benchmark.report("lpush+ltrim") do
33
- @r.flushdb
34
-
35
- ITERATIONS.times do |i|
36
- @r.lpush "lpush#{i}", i
37
- @r.ltrim "ltrim#{i}", 0, 30
38
- end
39
- end
40
-
41
- benchmark.report("lpush+ltrim (pipelined)") do
42
- @r.flushdb
43
-
44
- @r.pipelined do
45
- ITERATIONS.times do |i|
46
- @r.lpush "lpush#{i}", i
47
- @r.ltrim "ltrim#{i}", 0, 30
48
- end
49
- end
50
- end
51
- end
@@ -1,21 +0,0 @@
1
- # Run with
2
- #
3
- # $ ruby -Ilib benchmarking/speed.rb
4
- #
5
-
6
- require "benchmark"
7
- require "redis"
8
-
9
- r = Redis.new
10
- n = (ARGV.shift || 20000).to_i
11
-
12
- elapsed = Benchmark.realtime do
13
- # n sets, n gets
14
- n.times do |i|
15
- key = "foo#{i}"
16
- r[key] = key * 10
17
- r[key]
18
- end
19
- end
20
-
21
- puts '%.2f Kops' % (2 * n / 1000 / elapsed)
@@ -1,24 +0,0 @@
1
- require 'fileutils'
2
-
3
- def run_in_background(command)
4
- fork { system command }
5
- end
6
-
7
- def with_all_segments(&block)
8
- 0.upto(9) do |segment_number|
9
- block_size = 100000
10
- start_index = segment_number * block_size
11
- end_index = start_index + block_size - 1
12
- block.call(start_index, end_index)
13
- end
14
- end
15
-
16
- #with_all_segments do |start_index, end_index|
17
- # puts "Initializing keys from #{start_index} to #{end_index}"
18
- # system "ruby worker.rb initialize #{start_index} #{end_index} 0"
19
- #end
20
-
21
- with_all_segments do |start_index, end_index|
22
- run_in_background "ruby worker.rb write #{start_index} #{end_index} 10"
23
- run_in_background "ruby worker.rb read #{start_index} #{end_index} 1"
24
- end