lite-redis 1.1.2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -2
- data/CHANGELOG.md +11 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +73 -72
- data/README.md +12 -19
- data/Rakefile +2 -2
- data/bin/console +3 -3
- data/docs/CONNECTION.md +8 -4
- data/docs/GEO.md +8 -4
- data/docs/HASH.md +8 -4
- data/docs/HYPER_LOG_LOG.md +7 -3
- data/docs/KEY.md +7 -3
- data/docs/LIST.md +7 -3
- data/docs/PUB_SUB.md +6 -2
- data/docs/SCRIPT.md +7 -3
- data/docs/SET.md +7 -3
- data/docs/SORTED_SET.md +8 -4
- data/docs/STRING.md +7 -3
- data/docs/TRANSACTION.md +8 -4
- data/lib/generators/lite/redis/install_generator.rb +2 -2
- data/lib/lite/redis/base.rb +53 -2
- data/lib/lite/redis/configuration.rb +2 -2
- data/lib/lite/redis/connection.rb +96 -3
- data/lib/lite/redis/geo.rb +24 -3
- data/lib/lite/redis/hash.rb +60 -3
- data/lib/lite/redis/hyper_log_log.rb +12 -3
- data/lib/lite/redis/key.rb +86 -3
- data/lib/lite/redis/list.rb +124 -3
- data/lib/lite/redis/pub_sub.rb +36 -3
- data/lib/lite/redis/railtie.rb +1 -1
- data/lib/lite/redis/script.rb +12 -3
- data/lib/lite/redis/set.rb +60 -3
- data/lib/lite/redis/sorted_set.rb +127 -3
- data/lib/lite/redis/string.rb +87 -3
- data/lib/lite/redis/transaction.rb +20 -3
- data/lib/lite/redis/version.rb +1 -1
- data/lib/lite/redis.rb +17 -32
- data/lib/tasks/redis.rake +10 -10
- data/lite-redis.gemspec +27 -33
- metadata +9 -17
- data/lib/lite/redis/helpers/base_helper.rb +0 -41
- data/lib/lite/redis/helpers/connection_helper.rb +0 -105
- data/lib/lite/redis/helpers/geo_helper.rb +0 -33
- data/lib/lite/redis/helpers/hash_helper.rb +0 -69
- data/lib/lite/redis/helpers/hyper_log_log_helper.rb +0 -21
- data/lib/lite/redis/helpers/key_helper.rb +0 -95
- data/lib/lite/redis/helpers/list_helper.rb +0 -133
- data/lib/lite/redis/helpers/pub_sub_helper.rb +0 -45
- data/lib/lite/redis/helpers/script_helper.rb +0 -21
- data/lib/lite/redis/helpers/set_helper.rb +0 -69
- data/lib/lite/redis/helpers/sorted_set_helper.rb +0 -136
- data/lib/lite/redis/helpers/string_helper.rb +0 -96
- data/lib/lite/redis/helpers/transaction_helper.rb +0 -29
@@ -1,105 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module ConnectionHelper
|
6
|
-
|
7
|
-
def authenticate(password)
|
8
|
-
client.auth(password)
|
9
|
-
end
|
10
|
-
|
11
|
-
def connected?
|
12
|
-
client.connected?
|
13
|
-
end
|
14
|
-
|
15
|
-
def database(index)
|
16
|
-
client.select(index)
|
17
|
-
end
|
18
|
-
|
19
|
-
def database_id
|
20
|
-
client.database_id
|
21
|
-
end
|
22
|
-
|
23
|
-
def database_size
|
24
|
-
client.dbsize
|
25
|
-
end
|
26
|
-
|
27
|
-
def debug(*args)
|
28
|
-
client.debug(*args)
|
29
|
-
end
|
30
|
-
|
31
|
-
def disconnect
|
32
|
-
client.disconnect
|
33
|
-
end
|
34
|
-
|
35
|
-
def echo(message)
|
36
|
-
client.echo(message)
|
37
|
-
end
|
38
|
-
|
39
|
-
def flush
|
40
|
-
client.flushdb
|
41
|
-
end
|
42
|
-
|
43
|
-
def flush_all
|
44
|
-
client.flushall
|
45
|
-
end
|
46
|
-
|
47
|
-
def info
|
48
|
-
client.info
|
49
|
-
end
|
50
|
-
|
51
|
-
def ping
|
52
|
-
client.ping
|
53
|
-
end
|
54
|
-
|
55
|
-
def quit
|
56
|
-
client.quit
|
57
|
-
end
|
58
|
-
|
59
|
-
def reconnect
|
60
|
-
client.reconnect
|
61
|
-
end
|
62
|
-
|
63
|
-
def rewrite_aof
|
64
|
-
client.bgrewriteaof
|
65
|
-
end
|
66
|
-
|
67
|
-
def save
|
68
|
-
client.bgsave
|
69
|
-
end
|
70
|
-
|
71
|
-
def saved_at
|
72
|
-
client.lastsave
|
73
|
-
end
|
74
|
-
|
75
|
-
def shutdown
|
76
|
-
client.shutdown
|
77
|
-
end
|
78
|
-
|
79
|
-
def slave_of(host, port)
|
80
|
-
client.slaveof(host, port)
|
81
|
-
end
|
82
|
-
|
83
|
-
def slowlog(command, length = nil)
|
84
|
-
client.slowlog(command, length)
|
85
|
-
end
|
86
|
-
|
87
|
-
def synchronize
|
88
|
-
client.synchronize
|
89
|
-
end
|
90
|
-
|
91
|
-
def time
|
92
|
-
client.time
|
93
|
-
end
|
94
|
-
|
95
|
-
def with_reconnect(&block)
|
96
|
-
client.with_reconnect(true, &block)
|
97
|
-
end
|
98
|
-
|
99
|
-
def without_reconnect(&block)
|
100
|
-
client.with_reconnect(false, &block)
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module GeoHelper
|
6
|
-
|
7
|
-
def create(key, *member)
|
8
|
-
client.geoadd(key.to_s, *member)
|
9
|
-
end
|
10
|
-
|
11
|
-
def hash(key, member)
|
12
|
-
client.geohash(key.to_s, member)
|
13
|
-
end
|
14
|
-
|
15
|
-
def position(key, member)
|
16
|
-
client.geopos(key.to_s, member)
|
17
|
-
end
|
18
|
-
|
19
|
-
def distance(key, member1, member2, unit = 'm')
|
20
|
-
client.geodist(key.to_s, member1, member2, unit.to_s)
|
21
|
-
end
|
22
|
-
|
23
|
-
def radius(*args, **geoptions)
|
24
|
-
client.georadius(*args, **geoptions)
|
25
|
-
end
|
26
|
-
|
27
|
-
def radius_member(*args, **geoptions)
|
28
|
-
client.georadiusbymember(*args, **geoptions)
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module HashHelper
|
6
|
-
|
7
|
-
def find(key, field)
|
8
|
-
client.hget(key.to_s, field)
|
9
|
-
end
|
10
|
-
|
11
|
-
def find_each(key, *args)
|
12
|
-
client.hmget(key.to_s, *args)
|
13
|
-
end
|
14
|
-
|
15
|
-
def all(key)
|
16
|
-
client.hgetall(key.to_s)
|
17
|
-
end
|
18
|
-
|
19
|
-
def keys(key)
|
20
|
-
client.hkeys(key.to_s)
|
21
|
-
end
|
22
|
-
|
23
|
-
def values(key)
|
24
|
-
client.hvals(key.to_s)
|
25
|
-
end
|
26
|
-
|
27
|
-
def value_length(key, field)
|
28
|
-
client.hstrlen(key.to_s, field)
|
29
|
-
end
|
30
|
-
|
31
|
-
def count(key)
|
32
|
-
client.hlen(key.to_s)
|
33
|
-
end
|
34
|
-
|
35
|
-
def exists?(key, field)
|
36
|
-
client.hexists(key.to_s, field)
|
37
|
-
end
|
38
|
-
|
39
|
-
def create(key, field, value)
|
40
|
-
client.hset(key.to_s, field, value)
|
41
|
-
end
|
42
|
-
|
43
|
-
def create!(key, field, value)
|
44
|
-
client.hsetnx(key.to_s, field, value)
|
45
|
-
end
|
46
|
-
|
47
|
-
def create_each(key, *args)
|
48
|
-
client.hmset(key.to_s, *args)
|
49
|
-
end
|
50
|
-
|
51
|
-
def increment(key, field, value)
|
52
|
-
if value.is_a?(Float)
|
53
|
-
client.hincrbyfloat(key.to_s, field, value)
|
54
|
-
else
|
55
|
-
client.hincrby(key.to_s, field, value)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def destroy(key, *args)
|
60
|
-
client.hdel(key.to_s, *args)
|
61
|
-
end
|
62
|
-
|
63
|
-
def scan(key, cursor, opts = {})
|
64
|
-
client.hdel(key.to_s, cursor, **opts)
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module HyperLogLogHelper
|
6
|
-
|
7
|
-
def create(key, member)
|
8
|
-
client.pfadd(key.to_s, member)
|
9
|
-
end
|
10
|
-
|
11
|
-
def count(*args)
|
12
|
-
client.pfcount(*args)
|
13
|
-
end
|
14
|
-
|
15
|
-
def merge(key, *keys)
|
16
|
-
client.pfmerge(key.to_s, *keys)
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module KeyHelper
|
6
|
-
|
7
|
-
def exists?(key)
|
8
|
-
client.exists(key.to_s)
|
9
|
-
end
|
10
|
-
|
11
|
-
def type?(key)
|
12
|
-
client.type(key.to_s)
|
13
|
-
end
|
14
|
-
|
15
|
-
def ttl?(key, format = :seconds)
|
16
|
-
if seconds?(format)
|
17
|
-
client.ttl(key.to_s)
|
18
|
-
else
|
19
|
-
client.pttl(key.to_s)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def sort(key, opts = {})
|
24
|
-
client.sort(key.to_s, **opts)
|
25
|
-
end
|
26
|
-
|
27
|
-
def sample
|
28
|
-
client.randomkey
|
29
|
-
end
|
30
|
-
|
31
|
-
def rename(key, value)
|
32
|
-
client.rename(key.to_s, value.to_s)
|
33
|
-
end
|
34
|
-
|
35
|
-
def rename!(key, value)
|
36
|
-
client.renamenx(key.to_s, value.to_s)
|
37
|
-
end
|
38
|
-
|
39
|
-
def destroy(key)
|
40
|
-
client.del(key.to_s)
|
41
|
-
end
|
42
|
-
|
43
|
-
def persist(key)
|
44
|
-
client.persist(key.to_s)
|
45
|
-
end
|
46
|
-
|
47
|
-
def expire(key, seconds, format = :seconds)
|
48
|
-
if seconds?(format)
|
49
|
-
client.expire(key.to_s, seconds)
|
50
|
-
else
|
51
|
-
client.pexpire(key.to_s, seconds)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
alias expire_in expire
|
56
|
-
|
57
|
-
def expire_at(key, seconds, format = :seconds)
|
58
|
-
if seconds?(format)
|
59
|
-
client.expireat(key.to_s, seconds)
|
60
|
-
else
|
61
|
-
client.pexpireat(key.to_s, seconds)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def dump(key)
|
66
|
-
client.dump(key.to_s)
|
67
|
-
end
|
68
|
-
|
69
|
-
def match(pattern = '*')
|
70
|
-
client.keys(pattern.to_s)
|
71
|
-
end
|
72
|
-
|
73
|
-
def migrate(key, options)
|
74
|
-
client.migrate(key.to_s, options)
|
75
|
-
end
|
76
|
-
|
77
|
-
def move(key, destination)
|
78
|
-
client.move(key.to_s, destination)
|
79
|
-
end
|
80
|
-
|
81
|
-
def object(*args)
|
82
|
-
client.object(*args)
|
83
|
-
end
|
84
|
-
|
85
|
-
def restore(key, milliseconds, value)
|
86
|
-
client.restore(key.to_s, milliseconds, value)
|
87
|
-
end
|
88
|
-
|
89
|
-
def scan(cursor, opts = {})
|
90
|
-
client.scan(cursor, **opts)
|
91
|
-
end
|
92
|
-
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
@@ -1,133 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module ListHelper
|
6
|
-
|
7
|
-
def find(key, position = 1)
|
8
|
-
client.lindex(key.to_s, position - 1)
|
9
|
-
end
|
10
|
-
|
11
|
-
def first(key, limit = 1)
|
12
|
-
value = client.lrange(key.to_s, 0, -1)
|
13
|
-
return value.first if limit == 1
|
14
|
-
|
15
|
-
value.first(limit)
|
16
|
-
end
|
17
|
-
|
18
|
-
def last(key, limit = 1)
|
19
|
-
value = client.lrange(key.to_s, 0, -1)
|
20
|
-
return value.last if limit == 1
|
21
|
-
|
22
|
-
value.last(limit)
|
23
|
-
end
|
24
|
-
|
25
|
-
def between(key, start = 1, finish = 0)
|
26
|
-
client.lrange(key.to_s, start - 1, finish - 1)
|
27
|
-
end
|
28
|
-
|
29
|
-
def all(key)
|
30
|
-
client.lrange(key.to_s, 0, -1)
|
31
|
-
end
|
32
|
-
|
33
|
-
def count(key)
|
34
|
-
client.llen(key.to_s)
|
35
|
-
end
|
36
|
-
|
37
|
-
def create(key, value, order = :prepend)
|
38
|
-
if append?(order)
|
39
|
-
client.rpush(key.to_s, value)
|
40
|
-
else
|
41
|
-
client.lpush(key.to_s, value)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def create!(key, value, order = :prepend)
|
46
|
-
if append?(order)
|
47
|
-
client.rpushx(key.to_s, value)
|
48
|
-
else
|
49
|
-
client.lpushx(key.to_s, value)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def create_limit(key, value, limit, order = :prepend)
|
54
|
-
if append?(order)
|
55
|
-
client.rpush(key.to_s, value)
|
56
|
-
else
|
57
|
-
client.lpush(key.to_s, value)
|
58
|
-
end
|
59
|
-
|
60
|
-
client.ltrim(key.to_s, 0, limit - 1)
|
61
|
-
end
|
62
|
-
|
63
|
-
def create_limit!(key, value, limit, order = :prepend)
|
64
|
-
if append?(order)
|
65
|
-
client.rpushx(key.to_s, value)
|
66
|
-
else
|
67
|
-
client.lpushx(key.to_s, value)
|
68
|
-
end
|
69
|
-
|
70
|
-
client.ltrim(key.to_s, 0, limit - 1)
|
71
|
-
end
|
72
|
-
|
73
|
-
def create_before(key, pivot, value)
|
74
|
-
client.linsert(key.to_s, :before, pivot, value)
|
75
|
-
end
|
76
|
-
|
77
|
-
def create_after(key, pivot, value)
|
78
|
-
client.linsert(key.to_s, :after, pivot, value)
|
79
|
-
end
|
80
|
-
|
81
|
-
def update(key, index, value)
|
82
|
-
client.lset(key.to_s, index, value)
|
83
|
-
end
|
84
|
-
|
85
|
-
def move(key, desination)
|
86
|
-
client.rpoplpush(key.to_s, desination.to_s)
|
87
|
-
end
|
88
|
-
|
89
|
-
def move_blocking(key, desination)
|
90
|
-
brpoplpush(key.to_s, desination.to_s)
|
91
|
-
end
|
92
|
-
|
93
|
-
def destroy(key, count, value)
|
94
|
-
client.lrem(key.to_s, count, value)
|
95
|
-
end
|
96
|
-
|
97
|
-
def destroy_first(key, limit = 1)
|
98
|
-
client.ltrim(key.to_s, limit, -1)
|
99
|
-
end
|
100
|
-
|
101
|
-
def destroy_last(key, limit = 1)
|
102
|
-
client.ltrim(key.to_s, 0, -(limit + 1))
|
103
|
-
end
|
104
|
-
|
105
|
-
def destroy_except(key, start, finish)
|
106
|
-
client.ltrim(key.to_s, start - 1, finish - 1)
|
107
|
-
end
|
108
|
-
|
109
|
-
def destroy_all(key)
|
110
|
-
client.ltrim(key.to_s, -1, 0)
|
111
|
-
end
|
112
|
-
|
113
|
-
def pop(key, order = :prepend)
|
114
|
-
if append?(order)
|
115
|
-
client.rpop(key)
|
116
|
-
else
|
117
|
-
client.lpop(key)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
def pop_blocking(keys, opts = {})
|
122
|
-
timeout = opts[:timeout] || 0
|
123
|
-
|
124
|
-
if append?(opts[:order] || :prepend)
|
125
|
-
client.brpop(keys, timeout)
|
126
|
-
else
|
127
|
-
client.blpop(keys, timeout)
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module PubSubHelper
|
6
|
-
|
7
|
-
def publish(channel, message)
|
8
|
-
client.publish(channel, message)
|
9
|
-
end
|
10
|
-
|
11
|
-
def subscribed?
|
12
|
-
client.subscribed?
|
13
|
-
end
|
14
|
-
|
15
|
-
def subscribe(*channels, timeout: nil, &block)
|
16
|
-
if timeout.nil?
|
17
|
-
client.subscribe(*channels, &block)
|
18
|
-
else
|
19
|
-
client.subscribe_with_timeout(timeout, *channels, &block)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def unsubscribe(*channels)
|
24
|
-
client.unsubscribe(*channels)
|
25
|
-
end
|
26
|
-
|
27
|
-
def match_subscribe(*channels, timeout: nil, &block)
|
28
|
-
if timeout.nil?
|
29
|
-
client.psubscribe(*channels, &block)
|
30
|
-
else
|
31
|
-
client.psubscribe_with_timeout(timeout, *channels, &block)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def match_unsubscribe(*channels)
|
36
|
-
client.punsubscribe(*channels)
|
37
|
-
end
|
38
|
-
|
39
|
-
def state(command, *args)
|
40
|
-
client.pubsub(command, *args)
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module ScriptHelper
|
6
|
-
|
7
|
-
def script(command, *args)
|
8
|
-
client.script(command, *args)
|
9
|
-
end
|
10
|
-
|
11
|
-
def eval(*args)
|
12
|
-
client.eval(:eval, *args)
|
13
|
-
end
|
14
|
-
|
15
|
-
def evalsha(*args)
|
16
|
-
client.eval(:evalsha, *args)
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Lite
|
4
|
-
module Redis
|
5
|
-
module SetHelper
|
6
|
-
|
7
|
-
def find(key)
|
8
|
-
client.smembers(key.to_s)
|
9
|
-
end
|
10
|
-
|
11
|
-
def combine(*args)
|
12
|
-
client.sunion(*args)
|
13
|
-
end
|
14
|
-
|
15
|
-
def difference(*args)
|
16
|
-
client.sdiff(*args)
|
17
|
-
end
|
18
|
-
|
19
|
-
def intersection(key, *args)
|
20
|
-
client.sinter(key.to_s, *args)
|
21
|
-
end
|
22
|
-
|
23
|
-
def sample(key, value = 1)
|
24
|
-
client.srandmember(key.to_s, value)
|
25
|
-
end
|
26
|
-
|
27
|
-
def value?(key, value)
|
28
|
-
client.sismember(key.to_s, value)
|
29
|
-
end
|
30
|
-
|
31
|
-
def count(key)
|
32
|
-
client.scard(key.to_s)
|
33
|
-
end
|
34
|
-
|
35
|
-
def create(key, args)
|
36
|
-
client.sadd(key.to_s, args)
|
37
|
-
end
|
38
|
-
|
39
|
-
def create_combination(key, *args)
|
40
|
-
client.sunionstore(key.to_s, *args)
|
41
|
-
end
|
42
|
-
|
43
|
-
def create_difference(key, *args)
|
44
|
-
client.sdiffstore(key.to_s, *args)
|
45
|
-
end
|
46
|
-
|
47
|
-
def create_intersection(key, *args)
|
48
|
-
client.sinterstore(key.to_s, *args)
|
49
|
-
end
|
50
|
-
|
51
|
-
def move(key, destination, value)
|
52
|
-
client.smove(key.to_s, destination.to_s, value)
|
53
|
-
end
|
54
|
-
|
55
|
-
def destroy(key, args)
|
56
|
-
client.srem(key.to_s, args)
|
57
|
-
end
|
58
|
-
|
59
|
-
def destroy_random(key)
|
60
|
-
client.spop(key.to_s)
|
61
|
-
end
|
62
|
-
|
63
|
-
def scan(key, cursor, opts = {})
|
64
|
-
client.sscan(key.to_s, cursor, **opts)
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|