Skip to content

Instantly share code, notes, and snippets.

@darron
Created October 8, 2015 03:06
Show Gist options
  • Save darron/26f0276420f7dd7bf303 to your computer and use it in GitHub Desktop.
Save darron/26f0276420f7dd7bf303 to your computer and use it in GitHub Desktop.
Insert a whole bunch of data into Redis for some small load testing.
#!/usr/bin/env ruby
require 'digest'
require 'redis'
redis = Redis.new
class Time
def to_ms
(self.to_f * 1000.0).to_i
end
end
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel tempor libero. Mauris leo risus, tincidunt quis maximus et, finibus et ante. Cras consectetur quis odio nec tincidunt. Nunc consequat, lorem eget sodales vehicula, erat sapien suscipit eros, a commodo ipsum turpis quis metus. Donec eget sollicitudin purus, dictum bibendum elit. Maecenas et eros ut justo consequat tempus vel vel lorem. Maecenas semper auctor lacus, at ultricies velit semper ut. Sed iaculis erat tortor, semper sodales tortor cursus id. Aenean vestibulum est ligula, vel sodales sem scelerisque convallis. Cras sem elit, eleifend ultrices maximus id, laoreet ac urna. Integer arcu magna, rhoncus non purus vel, eleifend posuere mauris. In ornare ex velit. Maecenas eget elit ac risus pellentesque finibus. Donec sit amet est eget mi venenatis posuere eu vel est. "
subkeys = %W(metrics metric_api check_runs)
# Generate metric_keys.
metric_keys = []
(1..200).each do
r = rand(1..1000000)
moment_in_time = Time.now
value = Digest::MD5.hexdigest (moment_in_time.to_ms * rand).to_s
metric_keys << value
end
metric_key = ''
metric_value = ''
(1..100000).each do
length = rand(1..5)
metric_key = "#{subkeys.sample}|v1|#{metric_keys.sample}"
metric_value = text * length
redis.lpush "#{metric_key}", "#{metric_value}"
redis.expire "#{metric_key}", 420
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment