redis 3.3.3 → 5.0.5

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.
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