redis 4.0.0 → 5.0.0

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 (137) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +252 -1
  3. data/README.md +126 -88
  4. data/lib/redis/client.rb +79 -543
  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 +301 -109
  23. data/lib/redis/errors.rb +19 -1
  24. data/lib/redis/hash_ring.rb +34 -33
  25. data/lib/redis/pipeline.rb +69 -77
  26. data/lib/redis/subscribe.rb +26 -19
  27. data/lib/redis/version.rb +3 -1
  28. data/lib/redis.rb +109 -2728
  29. metadata +37 -229
  30. data/.gitignore +0 -16
  31. data/.travis/Gemfile +0 -13
  32. data/.travis.yml +0 -73
  33. data/.yardopts +0 -3
  34. data/Gemfile +0 -3
  35. data/benchmarking/logging.rb +0 -71
  36. data/benchmarking/pipeline.rb +0 -51
  37. data/benchmarking/speed.rb +0 -21
  38. data/benchmarking/suite.rb +0 -24
  39. data/benchmarking/worker.rb +0 -71
  40. data/bors.toml +0 -14
  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 -38
  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 -409
  57. data/lib/redis/connection/synchrony.rb +0 -141
  58. data/lib/redis/connection.rb +0 -9
  59. data/makefile +0 -42
  60. data/redis.gemspec +0 -42
  61. data/test/bitpos_test.rb +0 -63
  62. data/test/blocking_commands_test.rb +0 -40
  63. data/test/client_test.rb +0 -59
  64. data/test/command_map_test.rb +0 -28
  65. data/test/commands_on_hashes_test.rb +0 -19
  66. data/test/commands_on_hyper_log_log_test.rb +0 -19
  67. data/test/commands_on_lists_test.rb +0 -18
  68. data/test/commands_on_sets_test.rb +0 -75
  69. data/test/commands_on_sorted_sets_test.rb +0 -150
  70. data/test/commands_on_strings_test.rb +0 -99
  71. data/test/commands_on_value_types_test.rb +0 -131
  72. data/test/connection_handling_test.rb +0 -275
  73. data/test/db/.gitkeep +0 -0
  74. data/test/distributed_blocking_commands_test.rb +0 -44
  75. data/test/distributed_commands_on_hashes_test.rb +0 -8
  76. data/test/distributed_commands_on_hyper_log_log_test.rb +0 -31
  77. data/test/distributed_commands_on_lists_test.rb +0 -20
  78. data/test/distributed_commands_on_sets_test.rb +0 -81
  79. data/test/distributed_commands_on_sorted_sets_test.rb +0 -16
  80. data/test/distributed_commands_on_strings_test.rb +0 -57
  81. data/test/distributed_commands_on_value_types_test.rb +0 -93
  82. data/test/distributed_commands_requiring_clustering_test.rb +0 -162
  83. data/test/distributed_connection_handling_test.rb +0 -21
  84. data/test/distributed_internals_test.rb +0 -68
  85. data/test/distributed_key_tags_test.rb +0 -50
  86. data/test/distributed_persistence_control_commands_test.rb +0 -24
  87. data/test/distributed_publish_subscribe_test.rb +0 -90
  88. data/test/distributed_remote_server_control_commands_test.rb +0 -64
  89. data/test/distributed_scripting_test.rb +0 -100
  90. data/test/distributed_sorting_test.rb +0 -18
  91. data/test/distributed_test.rb +0 -56
  92. data/test/distributed_transactions_test.rb +0 -30
  93. data/test/encoding_test.rb +0 -14
  94. data/test/error_replies_test.rb +0 -57
  95. data/test/fork_safety_test.rb +0 -60
  96. data/test/helper.rb +0 -201
  97. data/test/helper_test.rb +0 -22
  98. data/test/internals_test.rb +0 -429
  99. data/test/lint/blocking_commands.rb +0 -150
  100. data/test/lint/hashes.rb +0 -162
  101. data/test/lint/hyper_log_log.rb +0 -60
  102. data/test/lint/lists.rb +0 -143
  103. data/test/lint/sets.rb +0 -140
  104. data/test/lint/sorted_sets.rb +0 -316
  105. data/test/lint/strings.rb +0 -246
  106. data/test/lint/value_types.rb +0 -130
  107. data/test/persistence_control_commands_test.rb +0 -24
  108. data/test/pipelining_commands_test.rb +0 -238
  109. data/test/publish_subscribe_test.rb +0 -280
  110. data/test/remote_server_control_commands_test.rb +0 -175
  111. data/test/scanning_test.rb +0 -407
  112. data/test/scripting_test.rb +0 -76
  113. data/test/sentinel_command_test.rb +0 -78
  114. data/test/sentinel_test.rb +0 -253
  115. data/test/sorting_test.rb +0 -57
  116. data/test/ssl_test.rb +0 -69
  117. data/test/support/connection/hiredis.rb +0 -1
  118. data/test/support/connection/ruby.rb +0 -1
  119. data/test/support/connection/synchrony.rb +0 -17
  120. data/test/support/redis_mock.rb +0 -130
  121. data/test/support/ssl/gen_certs.sh +0 -31
  122. data/test/support/ssl/trusted-ca.crt +0 -25
  123. data/test/support/ssl/trusted-ca.key +0 -27
  124. data/test/support/ssl/trusted-cert.crt +0 -81
  125. data/test/support/ssl/trusted-cert.key +0 -28
  126. data/test/support/ssl/untrusted-ca.crt +0 -26
  127. data/test/support/ssl/untrusted-ca.key +0 -27
  128. data/test/support/ssl/untrusted-cert.crt +0 -82
  129. data/test/support/ssl/untrusted-cert.key +0 -28
  130. data/test/support/wire/synchrony.rb +0 -24
  131. data/test/support/wire/thread.rb +0 -5
  132. data/test/synchrony_driver.rb +0 -85
  133. data/test/test.conf.erb +0 -9
  134. data/test/thread_safety_test.rb +0 -60
  135. data/test/transactions_test.rb +0 -262
  136. data/test/unknown_commands_test.rb +0 -12
  137. data/test/url_param_test.rb +0 -136
@@ -1,275 +0,0 @@
1
- require_relative "helper"
2
-
3
- class TestConnectionHandling < Test::Unit::TestCase
4
-
5
- include Helper::Client
6
-
7
- def test_auth
8
- commands = {
9
- :auth => lambda { |password| $auth = password; "+OK" },
10
- :get => lambda { |key| $auth == "secret" ? "$3\r\nbar" : "$-1" },
11
- }
12
-
13
- redis_mock(commands, :password => "secret") do |redis|
14
- assert_equal "bar", redis.get("foo")
15
- end
16
- end
17
-
18
- def test_id
19
- commands = {
20
- :client => lambda { |cmd, name| $name = [cmd, name]; "+OK" },
21
- :ping => lambda { "+PONG" },
22
- }
23
-
24
- redis_mock(commands, :id => "client-name") do |redis|
25
- assert_equal "PONG", redis.ping
26
- end
27
-
28
- assert_equal ["setname","client-name"], $name
29
- end
30
-
31
- def test_ping
32
- assert_equal "PONG", r.ping
33
- end
34
-
35
- def test_select
36
- r.set "foo", "bar"
37
-
38
- r.select 14
39
- assert_equal nil, r.get("foo")
40
-
41
- r._client.disconnect
42
-
43
- assert_equal nil, r.get("foo")
44
- end
45
-
46
- def test_quit
47
- r.quit
48
-
49
- assert !r._client.connected?
50
- end
51
-
52
- def test_close
53
- quit = 0
54
-
55
- commands = {
56
- :quit => lambda do
57
- quit += 1
58
- "+OK"
59
- end
60
- }
61
-
62
- redis_mock(commands) do |redis|
63
- assert_equal 0, quit
64
-
65
- redis.quit
66
-
67
- assert_equal 1, quit
68
-
69
- redis.ping
70
-
71
- redis.close
72
-
73
- assert_equal 1, quit
74
-
75
- assert !redis.connected?
76
- end
77
- end
78
-
79
- def test_disconnect
80
- quit = 0
81
-
82
- commands = {
83
- :quit => lambda do
84
- quit += 1
85
- "+OK"
86
- end
87
- }
88
-
89
- redis_mock(commands) do |redis|
90
- assert_equal 0, quit
91
-
92
- redis.quit
93
-
94
- assert_equal 1, quit
95
-
96
- redis.ping
97
-
98
- redis.disconnect!
99
-
100
- assert_equal 1, quit
101
-
102
- assert !redis.connected?
103
- end
104
- end
105
-
106
- def test_shutdown
107
- commands = {
108
- :shutdown => lambda { :exit }
109
- }
110
-
111
- redis_mock(commands) do |redis|
112
- # SHUTDOWN does not reply: test that it does not raise here.
113
- assert_equal nil, redis.shutdown
114
- end
115
- end
116
-
117
- def test_shutdown_with_error
118
- connections = 0
119
- commands = {
120
- :select => lambda { |*_| connections += 1; "+OK\r\n" },
121
- :connections => lambda { ":#{connections}\r\n" },
122
- :shutdown => lambda { "-ERR could not shutdown\r\n" }
123
- }
124
-
125
- redis_mock(commands) do |redis|
126
- connections = redis.connections
127
-
128
- # SHUTDOWN replies with an error: test that it gets raised
129
- assert_raise Redis::CommandError do
130
- redis.shutdown
131
- end
132
-
133
- # The connection should remain in tact
134
- assert_equal connections, redis.connections
135
- end
136
- end
137
-
138
- def test_shutdown_from_pipeline
139
- commands = {
140
- :shutdown => lambda { :exit }
141
- }
142
-
143
- redis_mock(commands) do |redis|
144
- result = redis.pipelined do
145
- redis.shutdown
146
- end
147
-
148
- assert_equal nil, result
149
- assert !redis._client.connected?
150
- end
151
- end
152
-
153
- def test_shutdown_with_error_from_pipeline
154
- connections = 0
155
- commands = {
156
- :select => lambda { |*_| connections += 1; "+OK\r\n" },
157
- :connections => lambda { ":#{connections}\r\n" },
158
- :shutdown => lambda { "-ERR could not shutdown\r\n" }
159
- }
160
-
161
- redis_mock(commands) do |redis|
162
- connections = redis.connections
163
-
164
- # SHUTDOWN replies with an error: test that it gets raised
165
- assert_raise Redis::CommandError do
166
- redis.pipelined do
167
- redis.shutdown
168
- end
169
- end
170
-
171
- # The connection should remain in tact
172
- assert_equal connections, redis.connections
173
- end
174
- end
175
-
176
- def test_shutdown_from_multi_exec
177
- commands = {
178
- :multi => lambda { "+OK\r\n" },
179
- :shutdown => lambda { "+QUEUED\r\n" },
180
- :exec => lambda { :exit }
181
- }
182
-
183
- redis_mock(commands) do |redis|
184
- result = redis.multi do
185
- redis.shutdown
186
- end
187
-
188
- assert_equal nil, result
189
- assert !redis._client.connected?
190
- end
191
- end
192
-
193
- def test_shutdown_with_error_from_multi_exec
194
- connections = 0
195
- commands = {
196
- :select => lambda { |*_| connections += 1; "+OK\r\n" },
197
- :connections => lambda { ":#{connections}\r\n" },
198
- :multi => lambda { "+OK\r\n" },
199
- :shutdown => lambda { "+QUEUED\r\n" },
200
- :exec => lambda { "*1\r\n-ERR could not shutdown\r\n" }
201
- }
202
-
203
- redis_mock(commands) do |redis|
204
- connections = redis.connections
205
-
206
- # SHUTDOWN replies with an error: test that it gets returned
207
- # We should test for Redis::CommandError here, but hiredis doesn't yet do
208
- # custom error classes.
209
- err = nil
210
-
211
- begin
212
- redis.multi { redis.shutdown }
213
- rescue => err
214
- end
215
-
216
- assert err.kind_of?(StandardError)
217
-
218
- # The connection should remain intact
219
- assert_equal connections, redis.connections
220
- end
221
- end
222
-
223
- def test_slaveof
224
- redis_mock(:slaveof => lambda { |host, port| "+SLAVEOF #{host} #{port}" }) do |redis|
225
- assert_equal "SLAVEOF somehost 6381", redis.slaveof("somehost", 6381)
226
- end
227
- end
228
-
229
- def test_bgrewriteaof
230
- redis_mock(:bgrewriteaof => lambda { "+BGREWRITEAOF" }) do |redis|
231
- assert_equal "BGREWRITEAOF", redis.bgrewriteaof
232
- end
233
- end
234
-
235
- def test_config_get
236
- assert r.config(:get, "*")["timeout"] != nil
237
-
238
- config = r.config(:get, "timeout")
239
- assert_equal ["timeout"], config.keys
240
- assert config.values.compact.size > 0
241
- end
242
-
243
- def test_config_set
244
- begin
245
- assert_equal "OK", r.config(:set, "timeout", 200)
246
- assert_equal "200", r.config(:get, "*")["timeout"]
247
-
248
- assert_equal "OK", r.config(:set, "timeout", 100)
249
- assert_equal "100", r.config(:get, "*")["timeout"]
250
- ensure
251
- r.config :set, "timeout", 300
252
- end
253
- end
254
-
255
- driver(:ruby, :hiredis) do
256
- def test_consistency_on_multithreaded_env
257
- t = nil
258
-
259
- commands = {
260
- :set => lambda { |key, value| t.kill; "+OK\r\n" },
261
- :incr => lambda { |key| ":1\r\n" },
262
- }
263
-
264
- redis_mock(commands) do |redis|
265
- t = Thread.new do
266
- redis.set("foo", "bar")
267
- end
268
-
269
- t.join
270
-
271
- assert_equal 1, redis.incr("baz")
272
- end
273
- end
274
- end
275
- end
data/test/db/.gitkeep DELETED
File without changes
@@ -1,44 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/blocking_commands"
3
-
4
- class TestDistributedBlockingCommands < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::BlockingCommands
8
-
9
- def test_blpop_raises
10
- assert_raises(Redis::Distributed::CannotDistribute) do
11
- r.blpop(["foo", "bar"])
12
- end
13
- end
14
-
15
- def test_blpop_raises_with_old_prototype
16
- assert_raises(Redis::Distributed::CannotDistribute) do
17
- r.blpop("foo", "bar", 0)
18
- end
19
- end
20
-
21
- def test_brpop_raises
22
- assert_raises(Redis::Distributed::CannotDistribute) do
23
- r.brpop(["foo", "bar"])
24
- end
25
- end
26
-
27
- def test_brpop_raises_with_old_prototype
28
- assert_raises(Redis::Distributed::CannotDistribute) do
29
- r.brpop("foo", "bar", 0)
30
- end
31
- end
32
-
33
- def test_brpoplpush_raises
34
- assert_raises(Redis::Distributed::CannotDistribute) do
35
- r.brpoplpush("foo", "bar")
36
- end
37
- end
38
-
39
- def test_brpoplpush_raises_with_old_prototype
40
- assert_raises(Redis::Distributed::CannotDistribute) do
41
- r.brpoplpush("foo", "bar", 0)
42
- end
43
- end
44
- end
@@ -1,8 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/hashes"
3
-
4
- class TestDistributedCommandsOnHashes < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::Hashes
8
- end
@@ -1,31 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/hyper_log_log"
3
-
4
- class TestDistributedCommandsOnHyperLogLog < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::HyperLogLog
8
-
9
- def test_pfmerge
10
- target_version "2.8.9" do
11
- assert_raise Redis::Distributed::CannotDistribute do
12
- r.pfadd "foo", "s1"
13
- r.pfadd "bar", "s2"
14
-
15
- assert r.pfmerge("res", "foo", "bar")
16
- end
17
- end
18
- end
19
-
20
- def test_pfcount_multiple_keys_diff_nodes
21
- target_version "2.8.9" do
22
- assert_raise Redis::Distributed::CannotDistribute do
23
- r.pfadd "foo", "s1"
24
- r.pfadd "bar", "s2"
25
-
26
- assert r.pfcount("res", "foo", "bar")
27
- end
28
- end
29
- end
30
-
31
- end
@@ -1,20 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/lists"
3
-
4
- class TestDistributedCommandsOnLists < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::Lists
8
-
9
- def test_rpoplpush
10
- assert_raise Redis::Distributed::CannotDistribute do
11
- r.rpoplpush("foo", "bar")
12
- end
13
- end
14
-
15
- def test_brpoplpush
16
- assert_raise Redis::Distributed::CannotDistribute do
17
- r.brpoplpush("foo", "bar", :timeout => 1)
18
- end
19
- end
20
- end
@@ -1,81 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/sets"
3
-
4
- class TestDistributedCommandsOnSets < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::Sets
8
-
9
- def test_smove
10
- assert_raise Redis::Distributed::CannotDistribute do
11
- r.sadd "foo", "s1"
12
- r.sadd "bar", "s2"
13
-
14
- r.smove("foo", "bar", "s1")
15
- end
16
- end
17
-
18
- def test_sinter
19
- assert_raise Redis::Distributed::CannotDistribute do
20
- r.sadd "foo", "s1"
21
- r.sadd "foo", "s2"
22
- r.sadd "bar", "s2"
23
-
24
- r.sinter("foo", "bar")
25
- end
26
- end
27
-
28
- def test_sinterstore
29
- assert_raise Redis::Distributed::CannotDistribute do
30
- r.sadd "foo", "s1"
31
- r.sadd "foo", "s2"
32
- r.sadd "bar", "s2"
33
-
34
- r.sinterstore("baz", "foo", "bar")
35
- end
36
- end
37
-
38
- def test_sunion
39
- assert_raise Redis::Distributed::CannotDistribute do
40
- r.sadd "foo", "s1"
41
- r.sadd "foo", "s2"
42
- r.sadd "bar", "s2"
43
- r.sadd "bar", "s3"
44
-
45
- r.sunion("foo", "bar")
46
- end
47
- end
48
-
49
- def test_sunionstore
50
- assert_raise Redis::Distributed::CannotDistribute do
51
- r.sadd "foo", "s1"
52
- r.sadd "foo", "s2"
53
- r.sadd "bar", "s2"
54
- r.sadd "bar", "s3"
55
-
56
- r.sunionstore("baz", "foo", "bar")
57
- end
58
- end
59
-
60
- def test_sdiff
61
- assert_raise Redis::Distributed::CannotDistribute do
62
- r.sadd "foo", "s1"
63
- r.sadd "foo", "s2"
64
- r.sadd "bar", "s2"
65
- r.sadd "bar", "s3"
66
-
67
- r.sdiff("foo", "bar")
68
- end
69
- end
70
-
71
- def test_sdiffstore
72
- assert_raise Redis::Distributed::CannotDistribute do
73
- r.sadd "foo", "s1"
74
- r.sadd "foo", "s2"
75
- r.sadd "bar", "s2"
76
- r.sadd "bar", "s3"
77
-
78
- r.sdiffstore("baz", "foo", "bar")
79
- end
80
- end
81
- end
@@ -1,16 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/sorted_sets"
3
-
4
- class TestDistributedCommandsOnSortedSets < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::SortedSets
8
-
9
- def test_zcount
10
- r.zadd "foo", 1, "s1"
11
- r.zadd "foo", 2, "s2"
12
- r.zadd "foo", 3, "s3"
13
-
14
- assert_equal 2, r.zcount("foo", 2, 3)
15
- end
16
- end
@@ -1,57 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/strings"
3
-
4
- class TestDistributedCommandsOnStrings < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::Strings
8
-
9
- def test_mget
10
- assert_raise Redis::Distributed::CannotDistribute do
11
- r.mget("foo", "bar")
12
- end
13
- end
14
-
15
- def test_mget_mapped
16
- assert_raise Redis::Distributed::CannotDistribute do
17
- r.mapped_mget("foo", "bar")
18
- end
19
- end
20
-
21
- def test_mset
22
- assert_raise Redis::Distributed::CannotDistribute do
23
- r.mset(:foo, "s1", :bar, "s2")
24
- end
25
- end
26
-
27
- def test_mset_mapped
28
- assert_raise Redis::Distributed::CannotDistribute do
29
- r.mapped_mset(:foo => "s1", :bar => "s2")
30
- end
31
- end
32
-
33
- def test_msetnx
34
- assert_raise Redis::Distributed::CannotDistribute do
35
- r.set("foo", "s1")
36
- r.msetnx(:foo, "s2", :bar, "s3")
37
- end
38
- end
39
-
40
- def test_msetnx_mapped
41
- assert_raise Redis::Distributed::CannotDistribute do
42
- r.set("foo", "s1")
43
- r.mapped_msetnx(:foo => "s2", :bar => "s3")
44
- end
45
- end
46
-
47
- def test_bitop
48
- target_version "2.5.10" do
49
- assert_raise Redis::Distributed::CannotDistribute do
50
- r.set("foo", "a")
51
- r.set("bar", "b")
52
-
53
- r.bitop(:and, "foo&bar", "foo", "bar")
54
- end
55
- end
56
- end
57
- end
@@ -1,93 +0,0 @@
1
- require_relative "helper"
2
- require_relative "lint/value_types"
3
-
4
- class TestDistributedCommandsOnValueTypes < Test::Unit::TestCase
5
-
6
- include Helper::Distributed
7
- include Lint::ValueTypes
8
-
9
- def test_del
10
- r.set "foo", "s1"
11
- r.set "bar", "s2"
12
- r.set "baz", "s3"
13
-
14
- assert_equal ["bar", "baz", "foo"], r.keys("*").sort
15
-
16
- assert_equal 1, r.del("foo")
17
-
18
- assert_equal ["bar", "baz"], r.keys("*").sort
19
-
20
- assert_equal 2, r.del("bar", "baz")
21
-
22
- assert_equal [], r.keys("*").sort
23
- end
24
-
25
- def test_del_with_array_argument
26
- r.set "foo", "s1"
27
- r.set "bar", "s2"
28
- r.set "baz", "s3"
29
-
30
- assert_equal ["bar", "baz", "foo"], r.keys("*").sort
31
-
32
- assert_equal 1, r.del(["foo"])
33
-
34
- assert_equal ["bar", "baz"], r.keys("*").sort
35
-
36
- assert_equal 2, r.del(["bar", "baz"])
37
-
38
- assert_equal [], r.keys("*").sort
39
- end
40
-
41
- def test_randomkey
42
- assert_raise Redis::Distributed::CannotDistribute do
43
- r.randomkey
44
- end
45
- end
46
-
47
- def test_rename
48
- assert_raise Redis::Distributed::CannotDistribute do
49
- r.set("foo", "s1")
50
- r.rename "foo", "bar"
51
- end
52
-
53
- assert_equal "s1", r.get("foo")
54
- assert_equal nil, r.get("bar")
55
- end
56
-
57
- def test_renamenx
58
- assert_raise Redis::Distributed::CannotDistribute do
59
- r.set("foo", "s1")
60
- r.rename "foo", "bar"
61
- end
62
-
63
- assert_equal "s1", r.get("foo")
64
- assert_equal nil , r.get("bar")
65
- end
66
-
67
- def test_dbsize
68
- assert_equal [0], r.dbsize
69
-
70
- r.set("foo", "s1")
71
-
72
- assert_equal [1], r.dbsize
73
- end
74
-
75
- def test_flushdb
76
- r.set("foo", "s1")
77
- r.set("bar", "s2")
78
-
79
- assert_equal [2], r.dbsize
80
-
81
- r.flushdb
82
-
83
- assert_equal [0], r.dbsize
84
- end
85
-
86
- def test_migrate
87
- r.set("foo", "s1")
88
-
89
- assert_raise Redis::Distributed::CannotDistribute do
90
- r.migrate("foo", {})
91
- end
92
- end
93
- end