Skip to content

Commit

Permalink
redis install + starting on example to show use of library (and to dr…
Browse files Browse the repository at this point in the history
…ive the development)
  • Loading branch information
Kyle Burton committed Aug 4, 2011
1 parent 757f09b commit ee0185d
Show file tree
Hide file tree
Showing 11 changed files with 202 additions and 1 deletion.
122 changes: 122 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
require 'yaml'
require 'erb'
require 'ostruct'
require 'pp'
require 'fileutils'
$project_root = File.dirname(__FILE__)
$redis_config = YAML.load_file(File.join($project_root,'config','redis.yml'))["redis"]

#pp $redis_config

def redis_url
$redis_config["download_url"]
end

def redis_archive
redis_url.split('/')[-1]
end

def redis_dir
File.basename(redis_archive,".tar.gz")
end

def redis_ver
redis_dir.split('-')[-1]
end

def redis_erb_template
"#{$project_root}/templates/redis.conf.erb"
end

def redis_config_file role
"#{$project_root}/redis/redis-#{role.to_s}.conf"
end

def gen_redis_config role, bindings
File.open(redis_config_file(role),"w") do |f|
template = File.read(redis_erb_template)
bindings = OpenStruct.new bindings
result = ERB.new(template).result(bindings.send(:binding))
f.puts result
end
end

namespace :perceptor do
namespace :redis do
desc "Download, build and Install Redis"
task :install do
Dir.chdir "redis/" do |p|
unless File.exist? redis_archive
system "wget", redis_url
end

unless File.exist? redis_dir
system "tar", "xzvf", redis_archive
end

Dir.chdir redis_dir do |p|
unless File.exist? "src/redis-server"
system "make"
end
end
end
end

namespace :master do
desc "generate redis config"
task :gen_config => [:install] do
gen_redis_config :master,
:port => 6379,
:role => :master,
:pidfile => "master.pid",
:dbfilename => "master-dump.rdb",
:dir => "./",
:appendfilename => "master-appendonly.aof",
:vm_swap_file => "master-redis.swap"
end

desc "Run master redis"
task :run => [:install,:gen_config] do
cmd = ["#{$project_root}/redis/#{redis_dir}/src/redis-server", redis_config_file(:master)]
pp cmd
system *cmd
end
end

namespace :slave do
desc "generate redis config"
task :gen_config => [:install] do
gen_redis_config :slave,
:port => 6380,
:slave => true,
:master_port => 6379,
:role => :slave,
:pidfile => "slave.pid",
:dbfilename => "slave-dump.rdb",
:dir => "./",
:appendfilename => "slave-appendonly.aof",
:vm_swap_file => "slave-redis.swap"
end

desc "Run slave redis"
task :run => [:install,:gen_config] do
cmd = ["#{$project_root}/redis/#{redis_dir}/src/redis-server", redis_config_file(:slave)]
#pp cmd
system *cmd
end
end
end

end

namespace :perceptor do
namespace :exmaples do
desc "make checkouts"
task :make_checkouts do
Dir.chdir "examples/web-stats" do |p|
FileUtils.mkdir_p "checkouts"
FileUtils.ln_s $project_root, "checkouts"
end
end
end
end
3 changes: 3 additions & 0 deletions config/redis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
redis:
download_url: http://redis.googlecode.com/files/redis-2.2.11.tar.gz
6 changes: 6 additions & 0 deletions examples/web-stats/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pom.xml
*jar
/lib/
/classes/
.lein-failures
.lein-deps-sum
13 changes: 13 additions & 0 deletions examples/web-stats/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# web-stats

FIXME: write description

## Usage

FIXME: write

## License

Copyright (C) 2011 FIXME

Distributed under the Eclipse Public License, the same as Clojure.
7 changes: 7 additions & 0 deletions examples/web-stats/project.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(defproject web-stats "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dev-dependencies [[swank-clojure "1.4.0-SNAPSHOT"]]
:local-repo-classpath true
:dependencies [[org.clojure/clojure "1.2.1"]
[com.relaynetwork/perceptor "1.0.0-SNAPSHOT"]
[noir "1.1.0"]])
1 change: 1 addition & 0 deletions examples/web-stats/src/web_stats/core.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(ns web-stats.core)
6 changes: 6 additions & 0 deletions examples/web-stats/test/web_stats/test/core.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
(ns web-stats.test.core
(:use [web-stats.core])
(:use [clojure.test]))

(deftest replace-me ;; FIXME: write
(is false "No tests have been written."))
3 changes: 2 additions & 1 deletion project.clj
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
(defproject com.relaynetwork/perceptor "1.0.0-SNAPSHOT"
:description "Clojure bindings for Esper: http://esper.codehaus.org/"
:dev-dependencies [[swank-clojure "1.4.0-SNAPSHOT"]]
:local-repo-classpath true
:dependencies [[org.clojure/clojure "1.2.1"]
[org.clojure/clojure-contrib "1.2.0"]
[com.espertech/esper "4.3.0"]
[org.clojars.kyleburton/clj-etl-utils "1.0.38-SNAPSHOT"]
[com.relaynetwork/clorine "1.0.5-SNAPSHOT"]])
[com.relaynetwork/clorine "1.0.6-SNAPSHOT"]])
4 changes: 4 additions & 0 deletions redis/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
redis-2.2.11.tar.gz
redis-2.2.11/
redis-master.conf
master-appendonly.aof
Empty file added redis/README.md
Empty file.
38 changes: 38 additions & 0 deletions templates/redis.conf.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# config <%= role %>
daemonize no
pidfile <%= $project_root %>/redis/<%= pidfile %>
port <%= port %>
bind 127.0.0.1
timeout 300
loglevel verbose
logfile stdout
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename <%= $project_root %>/redis/<%= dbfilename %>
dir <%= dir %>
<% if slave %>

slaveof 127.0.0.1 <%= master_port %>
slave-serve-stale-data no

<% end %>
maxclients 16
appendonly yes
appendfilename <%= $project_root %>/redis/<%= appendfilename %>
appendfsync everysec
no-appendfsync-on-rewrite no
vm-enabled no
vm-swap-file <%= $project_root %>/redis/<%= vm_swap_file %>
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
activerehashing yes

0 comments on commit ee0185d

Please sign in to comment.