xunch 0.0.6 → 0.0.9

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.
@@ -3,9 +3,7 @@ $:.unshift File.expand_path("../../test", __FILE__)
3
3
  require "test/unit"
4
4
  require "xunch"
5
5
  require 'yaml'
6
- require 'bigdecimal'
7
- require 'hessian2'
8
- require 'track_record_origin'
6
+ require 'test_helper'
9
7
 
10
8
  class ObjectCacheTest < Test::Unit::TestCase
11
9
  include Test::Unit::Assertions
@@ -15,87 +13,15 @@ class ObjectCacheTest < Test::Unit::TestCase
15
13
  file = File.join(root, 'test/xunch.yaml')
16
14
  caches = Xunch::CacheBuilder.build(file)
17
15
  @object_cache = caches["track"]
18
- @cache_object = TrackRecordOrigin.find(1)
19
- @cache_objects = [@cache_object]
20
- @keys = [1]
21
- for i in 2 .. 100 do
22
- new_cache_object = TrackRecordOrigin.new
23
- new_cache_object.track_id = @cache_object.track_id
24
- new_cache_object.track_uid = @cache_object.track_uid
25
- new_cache_object.track_upload_source = @cache_object.track_upload_source
26
- new_cache_object.op_type = @cache_object.op_type
27
- new_cache_object.is_publish = @cache_object.is_publish
28
- new_cache_object.upload_source = @cache_object.upload_source
29
- new_cache_object.uid = @cache_object.uid
30
- new_cache_object.nickname = @cache_object.nickname
31
- new_cache_object.avatar_path = @cache_object.avatar_path
32
- new_cache_object.is_v = @cache_object.is_v
33
- new_cache_object.human_category_id = @cache_object.human_category_id
34
- new_cache_object.title = @cache_object.title
35
- new_cache_object.intro = @cache_object.intro
36
- new_cache_object.user_source = @cache_object.user_source
37
- new_cache_object.category_id = @cache_object.category_id
38
- new_cache_object.duration = @cache_object.duration
39
- new_cache_object.play_path = @cache_object.play_path
40
- new_cache_object.play_path_32 = @cache_object.play_path_32
41
- new_cache_object.play_path_64 = @cache_object.play_path_64
42
- new_cache_object.play_path_128 = @cache_object.play_path_128
43
- new_cache_object.transcode_state = @cache_object.transcode_state
44
- new_cache_object.download_path = @cache_object.download_path
45
- new_cache_object.cover_path = @cache_object.cover_path
46
- new_cache_object.album_id = @cache_object.album_id
47
- new_cache_object.album_title = @cache_object.album_title
48
- new_cache_object.album_cover_path = @cache_object.album_cover_path
49
- new_cache_object.tags = @cache_object.tags
50
- new_cache_object.ignore_tags = @cache_object.ignore_tags
51
- new_cache_object.extra_tags = @cache_object.extra_tags
52
- new_cache_object.singer = @cache_object.singer
53
- new_cache_object.singer_category = @cache_object.singer_category
54
- new_cache_object.author = @cache_object.author
55
- new_cache_object.composer = @cache_object.composer
56
- new_cache_object.arrangement = @cache_object.arrangement
57
- new_cache_object.post_production = @cache_object.post_production
58
- new_cache_object.lyric_path = @cache_object.lyric_path
59
- new_cache_object.lyric = @cache_object.lyric
60
- new_cache_object.language = @cache_object.language
61
- new_cache_object.resinger = @cache_object.resinger
62
- new_cache_object.announcer = @cache_object.announcer
63
- new_cache_object.is_public = @cache_object.is_public
64
- new_cache_object.access_password = @cache_object.access_password
65
- new_cache_object.allow_download = @cache_object.allow_download
66
- new_cache_object.allow_comment = @cache_object.allow_comment
67
- new_cache_object.is_crawler = @cache_object.is_crawler
68
- new_cache_object.inet_aton_ip = @cache_object.inet_aton_ip
69
- new_cache_object.longitude = @cache_object.longitude
70
- new_cache_object.latitude = @cache_object.latitude
71
- new_cache_object.music_category = @cache_object.music_category
72
- new_cache_object.order_num = @cache_object.order_num
73
- new_cache_object.is_pick = @cache_object.is_pick
74
- new_cache_object.rich_intro = @cache_object.rich_intro
75
- new_cache_object.short_intro = @cache_object.short_intro
76
- new_cache_object.comment_content = @cache_object.comment_content
77
- new_cache_object.comment_id = @cache_object.comment_id
78
- new_cache_object.dig_status = @cache_object.dig_status
79
- new_cache_object.approved_at = @cache_object.approved_at
80
- new_cache_object.is_deleted = @cache_object.is_deleted
81
- new_cache_object.mp3size = @cache_object.mp3size
82
- new_cache_object.mp3size_32 = @cache_object.mp3size_32
83
- new_cache_object.mp3size_64 = @cache_object.mp3size_64
84
- new_cache_object.waveform = @cache_object.waveform
85
- new_cache_object.upload_id = @cache_object.upload_id
86
- new_cache_object.updated_at = @cache_object.updated_at
87
- new_cache_object.created_at = @cache_object.created_at
88
- new_cache_object.source_url = @cache_object.source_url
89
- new_cache_object.status = @cache_object.status
90
- new_cache_object.explore_height = @cache_object.explore_height
91
- new_cache_object.id = i
92
- @cache_objects.push new_cache_object
93
- @keys.push new_cache_object.id
94
- end
16
+ hash = TestHelper.build_objects
17
+ @cache_object = hash["object"]
18
+ @cache_objects = hash["objects"]
19
+ @keys = hash["keys"]
95
20
  puts "setup"
96
21
  end
97
22
 
98
23
  def test_get_set
24
+ puts "ObjectCacheTest test_get_set method start"
99
25
  assert_equal('OK',@object_cache.put(@cache_object))
100
26
  object = @object_cache.get(1)
101
27
 
@@ -180,11 +106,13 @@ class ObjectCacheTest < Test::Unit::TestCase
180
106
  assert_equal(@cache_object.status,object.status)
181
107
  assert_equal(@cache_object.explore_height,object.explore_height)
182
108
  assert_equal(@cache_object.id,object.id)
109
+ puts "ObjectCacheTest test_get_set method stop"
183
110
  end
184
111
 
185
112
  def test_get_set_benchmark
113
+ puts "ObjectCacheTest test_get_set_benchmark method start"
186
114
  @object_cache.evict(1)
187
- times = 1000
115
+ times = TestHelper::TIMES
188
116
  start = Time.now
189
117
  for i in 1 .. times do
190
118
  @object_cache.put(@cache_object)
@@ -198,9 +126,11 @@ class ObjectCacheTest < Test::Unit::TestCase
198
126
  end
199
127
  stop = Time.now
200
128
  puts "#{times} times get operation total use #{stop-start} seconds"
129
+ puts "ObjectCacheTest test_get_set_benchmark method stop"
201
130
  end
202
131
 
203
132
  def test_mget_mset
133
+ puts "ObjectCacheTest test_mget_mset method start"
204
134
  result = @object_cache.multi_put(@cache_objects)
205
135
  for i in 0 .. result.length - 1 do
206
136
  success = false
@@ -293,12 +223,14 @@ class ObjectCacheTest < Test::Unit::TestCase
293
223
  assert_equal(@cache_objects[i].explore_height,objects[i].explore_height)
294
224
  assert_equal(@cache_objects[i].id,objects[i].id)
295
225
  end
226
+ puts "ObjectCacheTest test_mget_mset method stop"
296
227
  end
297
228
 
298
229
  def test_mget_mset_benchmark
230
+ puts "ObjectCacheTest test_mget_mset_benchmark method start"
299
231
  @object_cache.batch_evict @keys
300
232
 
301
- times = 1000
233
+ times = TestHelper::TIMES
302
234
  start = Time.now
303
235
  for i in 1 .. times do
304
236
  @object_cache.multi_put(@cache_objects)
@@ -312,6 +244,7 @@ class ObjectCacheTest < Test::Unit::TestCase
312
244
  end
313
245
  stop = Time.now
314
246
  puts "#{times} times multi_get operation total use #{stop-start} seconds"
247
+ puts "ObjectCacheTest test_mget_mset_benchmark method stop"
315
248
  end
316
249
 
317
250
  def teardown
data/test/rb_tree_test.rb CHANGED
@@ -11,6 +11,7 @@ class RBTreeTest < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  def test_rb_tree
14
+ puts "RBTreeTest test_rb_tree method start"
14
15
  tree = Xunch::RBTree.new
15
16
 
16
17
  tree.put(1,"1")
@@ -19,26 +20,68 @@ class RBTreeTest < Test::Unit::TestCase
19
20
  tree.put(7,"7")
20
21
  tree.put(9,"9")
21
22
  tree.put(11,"11")
22
- puts tree.size
23
- # tree.p
24
- # puts tree.get(1)
25
- # puts tree.root.inspect
26
- # puts tree.root.left
27
- # puts tree.root.right
28
- # puts tree.root.right.left
29
- # puts tree.root.right.right
30
- puts tree.first_node.inspect
31
- puts tree.last_node.inspect
32
- puts tree.ceiling_node(2).inspect
33
- puts tree.floor_node(2).inspect
34
- puts tree.ceiling_node(5).inspect
35
- puts tree.floor_node(5).inspect
36
-
37
- puts tree.lower_node(6).inspect
38
- puts tree.higher_node(6).inspect
39
-
40
- puts tree.lower_node(9).inspect
41
- puts tree.higher_node(9).inspect
23
+
24
+ assert_equal(6,tree.size)
25
+ assert_equal("1",tree.first_node.value)
26
+ assert_equal("11",tree.last_node.value)
27
+
28
+ assert_equal("1",tree.ceiling_node(0).value)
29
+ assert_equal("1",tree.ceiling_node(1).value)
30
+ assert_equal("3",tree.ceiling_node(2).value)
31
+ assert_equal("3",tree.ceiling_node(3).value)
32
+ assert_equal("5",tree.ceiling_node(4).value)
33
+ assert_equal("5",tree.ceiling_node(5).value)
34
+ assert_equal("7",tree.ceiling_node(6).value)
35
+ assert_equal("7",tree.ceiling_node(7).value)
36
+ assert_equal("9",tree.ceiling_node(8).value)
37
+ assert_equal("9",tree.ceiling_node(9).value)
38
+ assert_equal("11",tree.ceiling_node(10).value)
39
+ assert_equal("11",tree.ceiling_node(11).value)
40
+ assert_equal(nil,tree.ceiling_node(12))
41
+
42
+ assert_equal("11",tree.floor_node(12).value)
43
+ assert_equal("11",tree.floor_node(11).value)
44
+ assert_equal("9",tree.floor_node(10).value)
45
+ assert_equal("9",tree.floor_node(9).value)
46
+ assert_equal("7",tree.floor_node(8).value)
47
+ assert_equal("7",tree.floor_node(7).value)
48
+ assert_equal("5",tree.floor_node(6).value)
49
+ assert_equal("5",tree.floor_node(5).value)
50
+ assert_equal("3",tree.floor_node(4).value)
51
+ assert_equal("3",tree.floor_node(3).value)
52
+ assert_equal("1",tree.floor_node(2).value)
53
+ assert_equal("1",tree.floor_node(1).value)
54
+ assert_equal(nil,tree.floor_node(0))
55
+
56
+ assert_equal("11",tree.lower_node(12).value)
57
+ assert_equal("9",tree.lower_node(11).value)
58
+ assert_equal("9",tree.lower_node(10).value)
59
+ assert_equal("7",tree.lower_node(9).value)
60
+ assert_equal("7",tree.lower_node(8).value)
61
+ assert_equal("5",tree.lower_node(7).value)
62
+ assert_equal("5",tree.lower_node(6).value)
63
+ assert_equal("3",tree.lower_node(5).value)
64
+ assert_equal("3",tree.lower_node(4).value)
65
+ assert_equal("1",tree.lower_node(3).value)
66
+ assert_equal("1",tree.lower_node(2).value)
67
+ assert_equal(nil,tree.lower_node(1))
68
+ assert_equal(nil,tree.lower_node(0))
69
+
70
+ assert_equal("1",tree.higher_node(0).value)
71
+ assert_equal("3",tree.higher_node(1).value)
72
+ assert_equal("3",tree.higher_node(2).value)
73
+ assert_equal("5",tree.higher_node(3).value)
74
+ assert_equal("5",tree.higher_node(4).value)
75
+ assert_equal("7",tree.higher_node(5).value)
76
+ assert_equal("7",tree.higher_node(6).value)
77
+ assert_equal("9",tree.higher_node(7).value)
78
+ assert_equal("9",tree.higher_node(8).value)
79
+ assert_equal("11",tree.higher_node(9).value)
80
+ assert_equal("11",tree.higher_node(10).value)
81
+ assert_equal(nil,tree.higher_node(11))
82
+ assert_equal(nil,tree.higher_node(12))
83
+
84
+ puts "RBTreeTest test_rb_tree method stop"
42
85
  end
43
86
 
44
87
  def teardown
@@ -21,19 +21,21 @@ class RedisTest < Test::Unit::TestCase
21
21
  end
22
22
 
23
23
  def test_redis
24
+ puts "RedisTest test_redis method start"
24
25
  assert_equal('OK',@redis_client.set('key1','value1',100000))
25
26
  assert(@redis_client.exists('key1'),"expect exists key1")
26
- assert((@redis_client.ttl('key1')<100000),"expect ttl less than 100000")
27
+ assert((@redis_client.ttl('key1') == 100000),"expect ttl less than 100000")
27
28
  assert(@redis_client.expire('key1',1000000))
28
- assert(@redis_client.ttl('key1')>100000,"expect ttl more than 100000")
29
- assert(@redis_client.ttl('key1')<1000000,"expect ttl less than 1000000")
29
+ # assert(@redis_client.ttl('key1') > 100000,"expect ttl more than 100000")
30
+ assert(@redis_client.ttl('key1') == 1000000,"expect ttl less than 1000000")
30
31
  assert_equal('value1',@redis_client.get('key1'))
31
32
  assert(@redis_client.del('key1'),"del key1 didn't success")
32
33
 
33
34
  hash = {"k1"=>"v1","k2"=>"v2","k3"=>"v3","k4"=>"v4","k5"=>"v5"}
34
- assert_equal(["OK", true, true, true, true, true],@redis_client.mset(hash,1000000))
35
+ assert_equal(["OK", "OK", "OK", "OK", "OK"],@redis_client.mset(hash,1000000))
36
+ assert_equal("OK",@redis_client.mset(hash,0))
35
37
 
36
- assert_equal(["v1", "v2", "v3", "v4", "v5", nil],@redis_client.mget("k1","k2","k3","k4","k5","k6"))
38
+ assert_equal(["v1", "v2", "v3", "v4", "v5", nil],@redis_client.mget(["k1","k2","k3","k4","k5","k6"]))
37
39
 
38
40
  fields = {"field1"=>"v1","field2"=>"v2","field3"=>"v3","field4"=>"v4","field5"=>"v5"}
39
41
  fieldkeys = ["field1","field2","field3","field4","field5"]
@@ -48,6 +50,7 @@ class RedisTest < Test::Unit::TestCase
48
50
 
49
51
  @redis_client.hmget(hashkeys,*fieldkeys)
50
52
 
53
+ puts "RedisTest test_redis method stop"
51
54
  end
52
55
 
53
56
  def teardown
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xunch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ted Wang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-19 00:00:00.000000000 Z
11
+ date: 2013-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -54,6 +54,7 @@ files:
54
54
  - lib/xunch/cache/object_cache.rb
55
55
  - lib/xunch/cache/cache.rb
56
56
  - lib/xunch/cache/field_object_cache.rb
57
+ - lib/xunch/cache/list_id_cache.rb
57
58
  - lib/xunch/utils/rb_tree.rb
58
59
  - lib/xunch/utils/utils.rb
59
60
  - lib/xunch/utils/types.rb
@@ -65,25 +66,20 @@ files:
65
66
  - lib/xunch/codec/json_codec.rb
66
67
  - lib/xunch.rb
67
68
  - test/json_codec_test.rb
68
- - test/redis_benchmark_test.rb
69
+ - test/cache_test.rb
69
70
  - test/cache_builder_test.rb
70
- - test/consistency_hash_test.rb
71
71
  - test/rb_tree_test.rb
72
+ - test/redis_client_test.rb
72
73
  - test/list_field_object_cache_test.rb
73
- - test/cache_object.rb
74
- - test/benchmark_test.rb
75
- - test/test.rb
74
+ - test/list_id_cache_test.rb
76
75
  - test/hash_codec_test.rb
77
76
  - test/nginx_cache_helper_test.rb
78
- - test/running_test.rb
79
77
  - test/object_cache_test.rb
80
78
  - test/list_object_cache_test.rb
81
- - test/redis_test.rb
82
79
  - test/field_object_cache_test.rb
83
- - test/track_record_origin.rb
84
80
  homepage: http://www.ximalaya.com
85
81
  licenses:
86
- - MIT2.0
82
+ - Apache License Version 2.0
87
83
  metadata: {}
88
84
  post_install_message:
89
85
  rdoc_options: []
@@ -107,19 +103,14 @@ specification_version: 4
107
103
  summary: A distribute cache client library based on redis.
108
104
  test_files:
109
105
  - test/json_codec_test.rb
110
- - test/redis_benchmark_test.rb
106
+ - test/cache_test.rb
111
107
  - test/cache_builder_test.rb
112
- - test/consistency_hash_test.rb
113
108
  - test/rb_tree_test.rb
109
+ - test/redis_client_test.rb
114
110
  - test/list_field_object_cache_test.rb
115
- - test/cache_object.rb
116
- - test/benchmark_test.rb
117
- - test/test.rb
111
+ - test/list_id_cache_test.rb
118
112
  - test/hash_codec_test.rb
119
113
  - test/nginx_cache_helper_test.rb
120
- - test/running_test.rb
121
114
  - test/object_cache_test.rb
122
115
  - test/list_object_cache_test.rb
123
- - test/redis_test.rb
124
116
  - test/field_object_cache_test.rb
125
- - test/track_record_origin.rb
@@ -1,68 +0,0 @@
1
- $:.unshift File.expand_path("../../lib", __FILE__)
2
- $:.unshift File.expand_path("../../test", __FILE__)
3
- require "test/unit"
4
- require "xunch"
5
- require 'yaml'
6
- require 'cache_object'
7
- require 'bigdecimal'
8
- require 'hessian2'
9
- require 'track_record_origin'
10
-
11
- DEFAULTS = {
12
- :size => 1,
13
- :timeout => nil,
14
- :driver => :hiredis,
15
- :host => '192.168.1.174',
16
- :port=>6379,
17
- :password=>'jredis123456',
18
- :db=>14,
19
- :timeout=>6
20
- }
21
- TrackInRecordStruct = Struct.new(:id, :track_id, :uid, :op_type, :nickname, :avatar_path, :is_v, :is_public, :is_publish, :user_source, :category_id, :title, :intro, :tags, :cover_path, :duration, :download_path, :play_path, :play_path_128, :play_path_64, :play_path_32, :singer, :singer_category, :author, :composer, :arrangement, :post_production, :lyric, :lyric_path, :language, :resinger, :announcer, :access_password, :allow_download, :allow_comment, :is_crawler, :inet_aton_ip, :upload_source, :longitude, :latitude, :album_id, :album_title, :album_cover_path, :transcode_state, :created_at, :updated_at, :rich_intro, :comment_content, :comment_id, :track_upload_source, :is_pick, :track_uid, :short_intro, :is_deleted, :dig_status, :approved_at, :mp3size, :mp3size_32, :mp3size_64, :upload_id, :waveform, :extra_tags, :ignore_tags, :music_category, :order_num, :source_url, :status, :human_category_id, :explore_height)
22
- class ObjectCacheTest < Test::Unit::TestCase
23
- include Test::Unit::Assertions
24
- def setup
25
- super
26
- root = File.expand_path("../..", __FILE__)
27
- file = File.join(root, 'test/xunch.yaml')
28
- caches = Xunch::CacheBuilder.build(file)
29
- @object_cache = caches["track"]
30
- puts "setup"
31
- end
32
-
33
- def test_benchmark
34
- redis = Redis.new(DEFAULTS)
35
- cache_object = TrackRecordOrigin.find(1)
36
- assert_equal('OK',@object_cache.put(cache_object))
37
- # puts "object: #{@object_cache.get(1).inspect}"
38
- object = nil
39
- s1 = Time.now
40
- 2.times do
41
- object = @object_cache.get(1)
42
- # data = redis.get("track_1_1")
43
- end
44
- puts object.inspect
45
- s2 = Time.now
46
- puts s2-s1
47
-
48
-
49
- redis.set("track_1_2", Hessian2.write(Hessian2::StructWrapper.new(TrackInRecordStruct, cache_object)))
50
- redis.pexpire("track_1_2",100000)
51
- object2 = nil
52
- s1 = Time.now
53
- 2.times do
54
- data = redis.get("track_1_2")
55
- object2 = Hessian2.parse(data, TrackInRecordStruct)
56
- end
57
- s2 = Time.now
58
- puts object2.inspect
59
- puts s2-s1
60
-
61
- end
62
-
63
- def teardown
64
- super
65
- puts "teardown"
66
- end
67
- end
68
-
data/test/cache_object.rb DELETED
@@ -1,120 +0,0 @@
1
- require 'active_record'
2
- require 'bigdecimal'
3
- require 'mysql2'
4
-
5
- class CacheObject < ActiveRecord::Base
6
- self.table_name = 'tb_xunch'
7
- self.primary_key = "big_num_field"
8
- conn = {
9
- :adapter => "mysql2",
10
- :encoding => "utf8",
11
- :reconnect => false,
12
- :database => "test",
13
- :username => "root",
14
- :password => "111111",
15
- :host => "127.0.0.1"
16
- }
17
- ActiveRecord::Base.establish_connection(conn)
18
-
19
- # include Xzunch::ColumnMethods
20
- # include Xunch::Converter
21
- attr_accessible :fix_num_field, :string_field, :big_num_field, :datetime_field, :float_field, :big_decimal_field
22
- # attr_type_define :time_field => :datetime, :big_decimal_field => :big_decimal
23
-
24
- TYPE_MAP = {
25
- "datetime_field" =>:datetime,
26
- "big_decimal_field" => :bigdecimal,
27
- "fix_num_field" => :fixnum,
28
- "float_field" => :float,
29
- "big_num_field" => :bignum
30
- }
31
-
32
- def to_s
33
- "{fix_num_field=>#{@fix_num_field},string_field=>#{@string_field}," <<
34
- "big_num_field=>#{@big_num_field},time_field=>#{@time_field}," <<
35
- "float_field=>#{@float_field},big_decimal_field=>#{@big_decimal_field}}"
36
-
37
- end
38
-
39
- def initialize
40
- super
41
- # @fix_num_field = 111
42
- # @string_field = "111"
43
- # @big_num_field = 123123123123123123123123123123123
44
- # @datetime_field = DateTime.new
45
- # @float_field = 111.123213213123
46
- # @big_decimal_field = BigDecimal.new("111111111111111111111111111111234.45466689324211111111111111111")
47
- end
48
-
49
- end
50
-
51
- # puts CacheObject.kind_of?(ActiveRecord::Base)
52
- # puts CacheObject.is_a?(ActiveRecord::Base)
53
- # puts CacheObject.ancestors
54
- # puts CacheObject.method_defined?(:_accessible_attributes)
55
- # raise ArgumentError.new("Codec class does not defined method '_accessible_attributes', maybe this klass is not a subclass of ActiveRecord::Base.") unless CacheObject.method_defined?(:_accessible_attributes)
56
-
57
- # o = CacheObject.new
58
-
59
- # methods = CacheObject.instance_methods()
60
-
61
- # set_methods = {}
62
- # get_methods = {}
63
- # methods.each { | method |
64
- # puts method[method.length-1] == '='
65
- # if method[method.length-1] == '='
66
- # set_methods[method[0,method.length-1]] = method
67
- # get_methods[method[0,method.length-1]] = method[0,method.length-1].to_sym
68
- # end
69
- # }
70
- # puts set_methods
71
- # puts get_methods
72
-
73
- # object = CacheObject.new
74
- # start = Time.new
75
- # for i in 0 .. 10000000 do
76
- # object.fix_num_field = i
77
- # end
78
- # stop = Time.new
79
- # puts stop - start
80
- # start = Time.new
81
- # for i in 0 .. 10000000 do
82
- # object.instance_variable_set(("@" + "fix_num_field"), i)
83
- # end
84
- # stop = Time.new
85
- # puts stop - start
86
-
87
- # start = Time.new
88
- # for i in 0 .. 10000000 do
89
- # object.fix_num_field
90
- # end
91
- # stop = Time.new
92
- # puts stop - start
93
- # start = Time.new
94
- # for i in 0 .. 10000000 do
95
- # object.instance_variable_get(:@fix_num_field)
96
- # end
97
- # stop = Time.new
98
- # puts stop - start
99
-
100
- # start = Time.new
101
- # for i in 0 .. 10000000 do
102
- # object.send(:fix_num_field)
103
- # end
104
- # stop = Time.new
105
- # puts stop - start
106
- # start = Time.new
107
- # for i in 0 .. 10000000 do
108
- # object.send("fix_num_field=",i)
109
- # end
110
- # stop = Time.new
111
- # puts stop - start
112
- # set_methods = {}
113
- # get_methods = {}
114
- # CacheObject._accessible_attributes[:default].each { |attribute|
115
- # get_methods[attribute] = attribute.to_sym
116
- # set_methods[attribute] = (attribute + "=").to_sym
117
- # }
118
-
119
- # p set_methods
120
- # p get_methods
@@ -1,31 +0,0 @@
1
- require "test/unit"
2
- require 'rbtree'
3
- require 'murmurhash'
4
- require 'redis'
5
-
6
- class ConsistencyhashTest < Test::Unit::TestCase
7
- include Test::Unit::Assertions
8
- def setup
9
- super
10
- puts "setup"
11
- end
12
-
13
- def test_consistency_hash
14
- redis = Redis.new(:host => "192.168.1.174", :port => 6379, :password => "jredis123456")
15
- redis.select 10
16
- rbtree = RBTree[]
17
- rbtree[1] = redis
18
- rbtree[5] = redis
19
- rbtree[11] = redis
20
- puts rbtree[1].inspect
21
- # puts rbtree.lower_bound(1)
22
- # puts rbtree.upper_bound(2)
23
- # puts rbtree.first.class
24
- puts Murmurhash.hash2A("2")
25
- end
26
-
27
- def teardown
28
- super
29
- puts "teardown"
30
- end
31
- end
@@ -1,54 +0,0 @@
1
- require 'redis'
2
- require 'hiredis'
3
- require "test/unit"
4
- require 'bigdecimal'
5
- require 'time'
6
-
7
- class ConsistencyhashTest < Test::Unit::TestCase
8
- include Test::Unit::Assertions
9
- def setup
10
- super
11
- puts "setup"
12
- end
13
-
14
- def test_consistency_hash
15
- redis = Redis.new(:host => "192.168.1.174", :port => 6379, :password => "jredis123456", :driver => :hiredis)
16
- redis.select 10
17
- hash = {
18
- "field1" => "value1",
19
- "field2" => BigDecimal.new("1231312321.1545727"),
20
- "field3" => Time.new.to_datetime,
21
- "field4" => 123432432141324321432432,
22
- "field5" => 54444.4545,
23
- "field6" => 12313123,
24
- # "field7" => "value7",
25
- # "field8" => "value8",
26
- # "field9" => "value9",
27
- # "field10" => "value10",
28
- # "field11" => "value11",
29
- # "field12" => "value12",
30
- # "field13" => "value13",
31
- # "field14" => "value14",
32
- # "field15" => "value15",
33
- # "field16" => "value16",
34
- # "field17" => "value17",
35
- # "field18" => "value18",
36
- # "field19" => "value19",
37
- # "field20" => "value20",
38
- }
39
- start = Time.new
40
- for i in 0 ..10000 do
41
- redis.pipelined do
42
- redis.mapped_hmset("key", hash)
43
- redis.pexpire("key",10000)
44
- end
45
- end
46
- stop = Time.new
47
- puts stop - start
48
- end
49
-
50
- def teardown
51
- super
52
- puts "teardown"
53
- end
54
- end