mredis 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Gemfile +1 -0
- data/lib/mredis.rb +2 -1
- data/lib/mredis/config.rb +15 -0
- data/lib/mredis/fetch.rb +41 -0
- data/lib/mredis/mget.rb +28 -0
- data/lib/mredis/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWFmNjk1ZDI2YjYyMmRjZTc1MDNlZmIwMTJhMGFmMWEyZjgwZTg5MA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MWEwNTdkZmQyMjA5ZGZmY2RmNGY3M2YwMmE3NjE5YTIyNTBiMzBjOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Yjc1ZjE0YTIzMmZlY2U1OTk0YWY4NGNkNWQ2NzE0ZjEzYjkyMjc1NDM0ZmIy
|
10
|
+
ZmRiODJlYmI5MTEyZTk4MjI5ZjJmZjk5MmI4NTBjYjU1OGM5OTQ1MmZiMzRl
|
11
|
+
MTZmZGFjN2MwZjg3MDA1MGFmODE4NDc2ZDAyZjgwMmEyNTdmODU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjZiMjY0MDcxNzcxMTdiMzZjN2U0YWFhZWZhNTNiYzhlMWIxN2YyYjc4Zjgx
|
14
|
+
NjQ2MzU5NmEyMjE3NDRkOGRiZDM4NzFhNGRjMjJkNTdlNWUwZDdhYzc0MzRl
|
15
|
+
N2Y5NzY5ODJlODgwODQxMWU2NzdkODM0NTcwZjIyNmMzMzQxMmM=
|
data/Gemfile
CHANGED
data/lib/mredis.rb
CHANGED
data/lib/mredis/fetch.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
module Mredis
|
2
|
+
module Fetch
|
3
|
+
def redis_key(str)
|
4
|
+
"#{self.class.base_class.name.downcase}:#{self.id}:#{str}"
|
5
|
+
end
|
6
|
+
|
7
|
+
def set_redis(key,value)
|
8
|
+
begin
|
9
|
+
$redis.set redis_key(key),value
|
10
|
+
rescue => e
|
11
|
+
Rails.logger.error "Redis server error when set #{redis_key(key)}: #{e.message}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_redis(key)
|
16
|
+
begin
|
17
|
+
$redis.get redis_key(key)
|
18
|
+
rescue => e
|
19
|
+
Rails.logger.error "Redis server error: #{e.message}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def incr_counter(key)
|
24
|
+
begin
|
25
|
+
key_redis = redis_key(key)
|
26
|
+
$redis.exists(key_redis) ? $redis.incr(key_redis) : self.send(key)
|
27
|
+
rescue => e
|
28
|
+
Rails.logger.error "Redis server error when incr #{key_redis}: #{e.message}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def decr_counter(key)
|
33
|
+
begin
|
34
|
+
key_redis = redis_key(key)
|
35
|
+
$redis.exists(key_redis) ? $redis.decr(key_redis) : self.send(key)
|
36
|
+
rescue => e
|
37
|
+
Rails.logger.error "Redis server error when decr #{key_redis}: #{e.message}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/mredis/mget.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
module Mredis
|
2
|
+
module Mget
|
3
|
+
def self.mget(objects, str)
|
4
|
+
hash = Hash.new
|
5
|
+
return hash if objects.blank?
|
6
|
+
result = begin
|
7
|
+
$redis.mget(generate_key_for_mget(objects, str))
|
8
|
+
rescue => e
|
9
|
+
Rails.logger.error "Redis server error: #{e.message}"
|
10
|
+
objs = objects.first.class == Spot ? objects.first.class.where(id: objects.map(&:id)).includes(:city=>[:country,:state]) : objects
|
11
|
+
objs.map{|x| x.try(str) }
|
12
|
+
end
|
13
|
+
list_ids = objects.map(&:id)
|
14
|
+
list_ids.each_index do |index|
|
15
|
+
hash[list_ids[index].to_s] = result[index].presence || (objects[index].try(str) rescue nil)
|
16
|
+
end
|
17
|
+
hash
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.generate_key_for_mget(objects ,str)
|
21
|
+
keys = Array.new
|
22
|
+
objects.each do |ob|
|
23
|
+
keys << "#{ob.class.base_class.name.downcase}:#{ob.id}:#{str}"
|
24
|
+
end
|
25
|
+
keys
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/mredis/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mredis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dao Anh Khoa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -51,6 +51,9 @@ files:
|
|
51
51
|
- README.md
|
52
52
|
- Rakefile
|
53
53
|
- lib/mredis.rb
|
54
|
+
- lib/mredis/config.rb
|
55
|
+
- lib/mredis/fetch.rb
|
56
|
+
- lib/mredis/mget.rb
|
54
57
|
- lib/mredis/version.rb
|
55
58
|
- mredis.gemspec
|
56
59
|
homepage: ''
|