redis 3.3.5 → 4.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +54 -2
- data/README.md +77 -76
- data/lib/redis.rb +779 -63
- data/lib/redis/client.rb +41 -20
- data/lib/redis/cluster.rb +286 -0
- data/lib/redis/cluster/command.rb +81 -0
- data/lib/redis/cluster/command_loader.rb +34 -0
- data/lib/redis/cluster/key_slot_converter.rb +72 -0
- data/lib/redis/cluster/node.rb +104 -0
- data/lib/redis/cluster/node_key.rb +35 -0
- data/lib/redis/cluster/node_loader.rb +37 -0
- data/lib/redis/cluster/option.rb +77 -0
- data/lib/redis/cluster/slot.rb +69 -0
- data/lib/redis/cluster/slot_loader.rb +49 -0
- data/lib/redis/connection.rb +2 -2
- data/lib/redis/connection/command_helper.rb +2 -8
- data/lib/redis/connection/hiredis.rb +2 -2
- data/lib/redis/connection/ruby.rb +13 -30
- data/lib/redis/connection/synchrony.rb +12 -4
- data/lib/redis/distributed.rb +32 -12
- data/lib/redis/errors.rb +46 -0
- data/lib/redis/hash_ring.rb +20 -64
- data/lib/redis/pipeline.rb +9 -7
- data/lib/redis/version.rb +1 -1
- metadata +53 -196
- data/.gitignore +0 -16
- data/.travis.yml +0 -89
- data/.travis/Gemfile +0 -11
- data/.yardopts +0 -3
- data/Gemfile +0 -4
- data/Rakefile +0 -87
- data/benchmarking/logging.rb +0 -71
- data/benchmarking/pipeline.rb +0 -51
- data/benchmarking/speed.rb +0 -21
- data/benchmarking/suite.rb +0 -24
- data/benchmarking/worker.rb +0 -71
- data/examples/basic.rb +0 -15
- data/examples/consistency.rb +0 -114
- data/examples/dist_redis.rb +0 -43
- data/examples/incr-decr.rb +0 -17
- data/examples/list.rb +0 -26
- data/examples/pubsub.rb +0 -37
- data/examples/sentinel.rb +0 -41
- data/examples/sentinel/start +0 -49
- data/examples/sets.rb +0 -36
- data/examples/unicorn/config.ru +0 -3
- data/examples/unicorn/unicorn.rb +0 -20
- data/redis.gemspec +0 -44
- data/test/bitpos_test.rb +0 -69
- data/test/blocking_commands_test.rb +0 -42
- data/test/client_test.rb +0 -59
- data/test/command_map_test.rb +0 -30
- data/test/commands_on_hashes_test.rb +0 -21
- data/test/commands_on_hyper_log_log_test.rb +0 -21
- data/test/commands_on_lists_test.rb +0 -20
- data/test/commands_on_sets_test.rb +0 -77
- data/test/commands_on_sorted_sets_test.rb +0 -137
- data/test/commands_on_strings_test.rb +0 -101
- data/test/commands_on_value_types_test.rb +0 -133
- data/test/connection_handling_test.rb +0 -277
- data/test/connection_test.rb +0 -57
- data/test/distributed_blocking_commands_test.rb +0 -46
- data/test/distributed_commands_on_hashes_test.rb +0 -10
- data/test/distributed_commands_on_hyper_log_log_test.rb +0 -33
- data/test/distributed_commands_on_lists_test.rb +0 -22
- data/test/distributed_commands_on_sets_test.rb +0 -83
- data/test/distributed_commands_on_sorted_sets_test.rb +0 -18
- data/test/distributed_commands_on_strings_test.rb +0 -59
- data/test/distributed_commands_on_value_types_test.rb +0 -95
- data/test/distributed_commands_requiring_clustering_test.rb +0 -164
- data/test/distributed_connection_handling_test.rb +0 -23
- data/test/distributed_internals_test.rb +0 -79
- data/test/distributed_key_tags_test.rb +0 -52
- data/test/distributed_persistence_control_commands_test.rb +0 -26
- data/test/distributed_publish_subscribe_test.rb +0 -92
- data/test/distributed_remote_server_control_commands_test.rb +0 -66
- data/test/distributed_scripting_test.rb +0 -102
- data/test/distributed_sorting_test.rb +0 -20
- data/test/distributed_test.rb +0 -58
- data/test/distributed_transactions_test.rb +0 -32
- data/test/encoding_test.rb +0 -18
- data/test/error_replies_test.rb +0 -59
- data/test/fork_safety_test.rb +0 -65
- data/test/helper.rb +0 -232
- data/test/helper_test.rb +0 -24
- data/test/internals_test.rb +0 -417
- data/test/lint/blocking_commands.rb +0 -150
- data/test/lint/hashes.rb +0 -162
- data/test/lint/hyper_log_log.rb +0 -60
- data/test/lint/lists.rb +0 -143
- data/test/lint/sets.rb +0 -140
- data/test/lint/sorted_sets.rb +0 -316
- data/test/lint/strings.rb +0 -260
- data/test/lint/value_types.rb +0 -122
- data/test/persistence_control_commands_test.rb +0 -26
- data/test/pipelining_commands_test.rb +0 -242
- data/test/publish_subscribe_test.rb +0 -282
- data/test/remote_server_control_commands_test.rb +0 -118
- data/test/scanning_test.rb +0 -413
- data/test/scripting_test.rb +0 -78
- data/test/sentinel_command_test.rb +0 -80
- data/test/sentinel_test.rb +0 -255
- data/test/sorting_test.rb +0 -59
- data/test/ssl_test.rb +0 -73
- data/test/support/connection/hiredis.rb +0 -1
- data/test/support/connection/ruby.rb +0 -1
- data/test/support/connection/synchrony.rb +0 -17
- data/test/support/redis_mock.rb +0 -130
- data/test/support/ssl/gen_certs.sh +0 -31
- data/test/support/ssl/trusted-ca.crt +0 -25
- data/test/support/ssl/trusted-ca.key +0 -27
- data/test/support/ssl/trusted-cert.crt +0 -81
- data/test/support/ssl/trusted-cert.key +0 -28
- data/test/support/ssl/untrusted-ca.crt +0 -26
- data/test/support/ssl/untrusted-ca.key +0 -27
- data/test/support/ssl/untrusted-cert.crt +0 -82
- data/test/support/ssl/untrusted-cert.key +0 -28
- data/test/support/wire/synchrony.rb +0 -24
- data/test/support/wire/thread.rb +0 -5
- data/test/synchrony_driver.rb +0 -88
- data/test/test.conf.erb +0 -9
- data/test/thread_safety_test.rb +0 -62
- data/test/transactions_test.rb +0 -264
- data/test/unknown_commands_test.rb +0 -14
- data/test/url_param_test.rb +0 -138
@@ -1,14 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
require File.expand_path("helper", File.dirname(__FILE__))
|
4
|
-
|
5
|
-
class TestUnknownCommands < Test::Unit::TestCase
|
6
|
-
|
7
|
-
include Helper::Client
|
8
|
-
|
9
|
-
def test_should_try_to_work
|
10
|
-
assert_raise Redis::CommandError do
|
11
|
-
r.not_yet_implemented_command
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/test/url_param_test.rb
DELETED
@@ -1,138 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
require File.expand_path("helper", File.dirname(__FILE__))
|
4
|
-
|
5
|
-
class TestUrlParam < Test::Unit::TestCase
|
6
|
-
|
7
|
-
include Helper::Client
|
8
|
-
|
9
|
-
def test_url_defaults_to_______________
|
10
|
-
redis = Redis.new
|
11
|
-
|
12
|
-
assert_equal "127.0.0.1", redis.client.host
|
13
|
-
assert_equal 6379, redis.client.port
|
14
|
-
assert_equal 0, redis.client.db
|
15
|
-
assert_equal nil, redis.client.password
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_allows_to_pass_in_a_url
|
19
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com:999/2"
|
20
|
-
|
21
|
-
assert_equal "foo.com", redis.client.host
|
22
|
-
assert_equal 999, redis.client.port
|
23
|
-
assert_equal 2, redis.client.db
|
24
|
-
assert_equal "secr3t", redis.client.password
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_allows_to_pass_in_a_url_with_string_key
|
28
|
-
redis = Redis.new "url" => "redis://:secr3t@foo.com:999/2"
|
29
|
-
|
30
|
-
assert_equal "foo.com", redis.client.host
|
31
|
-
assert_equal 999, redis.client.port
|
32
|
-
assert_equal 2, redis.client.db
|
33
|
-
assert_equal "secr3t", redis.client.password
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_unescape_password_from_url
|
37
|
-
redis = Redis.new :url => "redis://:secr3t%3A@foo.com:999/2"
|
38
|
-
|
39
|
-
assert_equal "secr3t:", redis.client.password
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_unescape_password_from_url_with_string_key
|
43
|
-
redis = Redis.new "url" => "redis://:secr3t%3A@foo.com:999/2"
|
44
|
-
|
45
|
-
assert_equal "secr3t:", redis.client.password
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_does_not_unescape_password_when_explicitly_passed
|
49
|
-
redis = Redis.new :url => "redis://:secr3t%3A@foo.com:999/2", :password => "secr3t%3A"
|
50
|
-
|
51
|
-
assert_equal "secr3t%3A", redis.client.password
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_does_not_unescape_password_when_explicitly_passed_with_string_key
|
55
|
-
redis = Redis.new :url => "redis://:secr3t%3A@foo.com:999/2", "password" => "secr3t%3A"
|
56
|
-
|
57
|
-
assert_equal "secr3t%3A", redis.client.password
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_override_url_if_path_option_is_passed
|
61
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com/foo:999/2", :path => "/tmp/redis.sock"
|
62
|
-
|
63
|
-
assert_equal "/tmp/redis.sock", redis.client.path
|
64
|
-
assert_equal nil, redis.client.host
|
65
|
-
assert_equal nil, redis.client.port
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_override_url_if_path_option_is_passed_with_string_key
|
69
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com/foo:999/2", "path" => "/tmp/redis.sock"
|
70
|
-
|
71
|
-
assert_equal "/tmp/redis.sock", redis.client.path
|
72
|
-
assert_equal nil, redis.client.host
|
73
|
-
assert_equal nil, redis.client.port
|
74
|
-
end
|
75
|
-
|
76
|
-
def test_overrides_url_if_another_connection_option_is_passed
|
77
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com:999/2", :port => 1000
|
78
|
-
|
79
|
-
assert_equal "foo.com", redis.client.host
|
80
|
-
assert_equal 1000, redis.client.port
|
81
|
-
assert_equal 2, redis.client.db
|
82
|
-
assert_equal "secr3t", redis.client.password
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_overrides_url_if_another_connection_option_is_passed_with_string_key
|
86
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com:999/2", "port" => 1000
|
87
|
-
|
88
|
-
assert_equal "foo.com", redis.client.host
|
89
|
-
assert_equal 1000, redis.client.port
|
90
|
-
assert_equal 2, redis.client.db
|
91
|
-
assert_equal "secr3t", redis.client.password
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_does_not_overrides_url_if_a_nil_option_is_passed
|
95
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com:999/2", :port => nil
|
96
|
-
|
97
|
-
assert_equal "foo.com", redis.client.host
|
98
|
-
assert_equal 999, redis.client.port
|
99
|
-
assert_equal 2, redis.client.db
|
100
|
-
assert_equal "secr3t", redis.client.password
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_does_not_overrides_url_if_a_nil_option_is_passed_with_string_key
|
104
|
-
redis = Redis.new :url => "redis://:secr3t@foo.com:999/2", "port" => nil
|
105
|
-
|
106
|
-
assert_equal "foo.com", redis.client.host
|
107
|
-
assert_equal 999, redis.client.port
|
108
|
-
assert_equal 2, redis.client.db
|
109
|
-
assert_equal "secr3t", redis.client.password
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_does_not_modify_the_passed_options
|
113
|
-
options = { :url => "redis://:secr3t@foo.com:999/2" }
|
114
|
-
|
115
|
-
Redis.new(options)
|
116
|
-
|
117
|
-
assert({ :url => "redis://:secr3t@foo.com:999/2" } == options)
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_uses_redis_url_over_default_if_available
|
121
|
-
ENV["REDIS_URL"] = "redis://:secr3t@foo.com:999/2"
|
122
|
-
|
123
|
-
redis = Redis.new
|
124
|
-
|
125
|
-
assert_equal "foo.com", redis.client.host
|
126
|
-
assert_equal 999, redis.client.port
|
127
|
-
assert_equal 2, redis.client.db
|
128
|
-
assert_equal "secr3t", redis.client.password
|
129
|
-
|
130
|
-
ENV.delete("REDIS_URL")
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_defaults_to_localhost
|
134
|
-
redis = Redis.new(:url => "redis:///")
|
135
|
-
|
136
|
-
assert_equal "127.0.0.1", redis.client.host
|
137
|
-
end
|
138
|
-
end
|