redis-dump 0.3.4 → 0.3.5

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.
Binary file
@@ -1,5 +1,9 @@
1
1
  REDIS-DUMP, CHANGES
2
2
 
3
+ #### 0.3.5 (2013-02-07) ###############################
4
+
5
+ * Array#select fix for Ruby 1.8 [TIT]
6
+
3
7
  #### 0.3.4 (2012-12-19) ###############################
4
8
 
5
9
  * ADDED: Allow loading of redis dumps with binary data (-n flag) [meekmichael]
data/Rakefile CHANGED
@@ -1,48 +1,59 @@
1
1
  require "rubygems"
2
2
  require "rake"
3
3
  require "rake/clean"
4
- require 'yaml'
4
+ require "rdoc/task"
5
5
 
6
- begin
7
- require 'hanna/rdoctask'
8
- rescue LoadError
9
- require 'rake/rdoctask'
10
- end
11
-
12
- config = YAML.load_file("VERSION.yml")
13
6
  task :default => ["build"]
14
- CLEAN.include [ 'pkg', 'doc' ]
7
+ CLEAN.include [ 'pkg', 'rdoc' ]
15
8
  name = "redis-dump"
16
9
 
10
+ $:.unshift File.join(File.dirname(__FILE__), 'lib')
11
+ require "redis/dump"
12
+ version = Redis::Dump::VERSION.to_s
13
+
17
14
  begin
18
15
  require "jeweler"
19
- Jeweler::Tasks.new do |gem|
20
- gem.version = "#{config[:MAJOR]}.#{config[:MINOR]}.#{config[:PATCH]}"
21
- gem.name = "redis-dump"
22
- gem.rubyforge_project = gem.name
23
- gem.summary = "Backup and restore your Redis data to and from JSON."
24
- gem.description = gem.summary
25
- gem.email = "delano@solutious.com"
26
- gem.homepage = "http://github.com/delano/redis-dump"
27
- gem.authors = ["Delano Mandelbaum"]
28
- gem.add_dependency("yajl-ruby", ">= 0.1")
29
- gem.add_dependency("redis", ">= 2.0")
30
- gem.add_dependency("uri-redis", ">= 0.4.0")
31
- gem.add_dependency("drydock", ">= 0.6.9")
16
+ Jeweler::Tasks.new do |s|
17
+ s.version = version
18
+ s.name = name
19
+ s.summary = "Backup and restore your Redis data to and from JSON."
20
+ s.description = s.summary
21
+ s.email = "delano@solutious.com"
22
+ s.homepage = "http://github.com/delano/redis-dump"
23
+ s.authors = ["Delano Mandelbaum"]
24
+
25
+ s.add_dependency("yajl-ruby", ">= 0.1")
26
+ s.add_dependency("redis", ">= 2.0")
27
+ s.add_dependency("uri-redis", ">= 0.4.0")
28
+ s.add_dependency("drydock", ">= 0.6.9")
29
+
30
+ s.license = "MIT"
31
+
32
+ s.signing_key = File.join('/mnt/gem/', 'gem-private_key.pem')
33
+ s.cert_chain = ['gem-public_cert.pem']
32
34
  end
33
35
  Jeweler::GemcutterTasks.new
34
36
  rescue LoadError
35
37
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
36
38
  end
37
39
 
40
+ require 'rake/testtask'
41
+ Rake::TestTask.new do |t|
42
+ t.libs = ["lib", "test"]
43
+ end
38
44
 
39
- Rake::RDocTask.new do |rdoc|
40
- version = "#{config[:MAJOR]}.#{config[:MINOR]}.#{config[:PATCH]}.#{config[:BUILD]}"
41
- rdoc.rdoc_dir = "doc"
42
- rdoc.title = "redis-dump #{version}"
45
+ extra_files = %w[LICENSE.txt THANKS.txt CHANGES.txt ]
46
+ RDoc::Task.new do |rdoc|
47
+ rdoc.rdoc_dir = "rdoc"
48
+ rdoc.title = "#{name} #{version}"
49
+ rdoc.generator = 'hanna' # gem install hanna-nouveau
50
+ rdoc.main = 'README.rdoc'
43
51
  rdoc.rdoc_files.include("README*")
44
- rdoc.rdoc_files.include("LICENSE.txt")
45
- #rdoc.rdoc_files.include("bin/*.rb")
52
+ rdoc.rdoc_files.include("bin/*.rb")
46
53
  rdoc.rdoc_files.include("lib/**/*.rb")
54
+ extra_files.each { |file|
55
+ rdoc.rdoc_files.include(file) if File.exists?(file)
56
+ }
47
57
  end
48
58
 
59
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.3.5
@@ -0,0 +1,20 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZkZWxh
3
+ bm8xGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
4
+ b20wHhcNMTMwMjA2MTE1NzQ1WhcNMTQwMjA2MTE1NzQ1WjBBMQ8wDQYDVQQDDAZk
5
+ ZWxhbm8xGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
6
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDg1hMtl0XsMuUK
7
+ AKTgYWv3gjj7vuEsE2EjT+vyBg8/LpqVVwZziiaebJT9IZiQ+sCFqbiakj0b53pI
8
+ hg1yOaBEmH6/W0L7rwzqaRV9sW1eJs9JxFYQCnd67zUnzj8nnRlOjG+hhIG+Vsij
9
+ npsGbt28pefuNZJjO5q2clAlfSniIIHfIsU7/StEYu6FUGOjnwryZ0r5yJlr9RrE
10
+ Gs+q0DW8QnZ9UpAfuDFQZuIqeKQFFLE7nMmCGaA+0BN1nLl3fVHNbLHq7Avk8+Z+
11
+ ZuuvkdscbHlO/l+3xCNQ5nUnHwq0ADAbMLOlmiYYzqXoWLjmeI6me/clktJCfN2R
12
+ oZG3UQvvAgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFMSJOEtHzE4l0azv
13
+ M0JK0kKNToK1MAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAtOdE73qx
14
+ OH2ydi9oT2hS5f9G0y1Z70Tlwh+VGExyfxzVE9XwC+iPpJxNraiHYgF/9/oky7ZZ
15
+ R9q0/tJneuhAenZdiQkX7oi4O3v9wRS6YHoWBxMPFKVRLNTzvVJsbmfpCAlp5/5g
16
+ ps4wQFy5mibElGVlOobf/ghqZ25HS9J6kd0/C/ry0AUtTogsL7TxGwT4kbCx63ub
17
+ 3vywEEhsJUzfd97GCABmtQfRTldX/j7F1z/5wd8p+hfdox1iibds9ZtfaZA3KzKn
18
+ kchWN9B6zg9r1XMQ8BM2Jz0XoPanPe354+lWwjpkRKbFow/ZbQHcCLCq24+N6b6g
19
+ dgKfNDzwiDpqCA==
20
+ -----END CERTIFICATE-----
@@ -78,7 +78,7 @@ class Redis
78
78
  process_chunk idx, dump_keys_size do |count|
79
79
  Redis::Dump.ld " dumping #{chunk_entries.size} (#{count}) from #{redis.client.id}"
80
80
  output_buffer = []
81
- chunk_entries.select! do |key|
81
+ chunk_entries = chunk_entries.select do |key|
82
82
  type = Redis::Dump.type(redis, key)
83
83
  if self.class.with_optimizations && type == 'string'
84
84
  true
@@ -248,23 +248,21 @@ class Redis
248
248
  extend Redis::Dump::ClassMethods
249
249
 
250
250
  module VERSION
251
- def self.stamp
252
- @info[:STAMP].to_i
253
- end
254
- def self.owner
255
- @info[:OWNER]
256
- end
257
- def self.to_s
258
- [@info[:MAJOR], @info[:MINOR], @info[:PATCH]].join('.')
259
- end
260
- def self.path
261
- File.join(RD_HOME, 'VERSION.yml')
262
- end
263
- def self.load_config
264
- require 'yaml'
265
- @info ||= YAML.load_file(path)
251
+ @path = File.join(RD_HOME, 'VERSION')
252
+ class << self
253
+ attr_reader :version, :path
254
+ def version
255
+ @version || read_version
256
+ end
257
+ def read_version
258
+ return if @version
259
+ @version = File.read(path).strip!
260
+ end
261
+ def prerelease?() false end
262
+ def to_a() version.split('.') end
263
+ def to_s() version end
264
+ def inspect() version end
266
265
  end
267
- load_config
268
266
  end
269
267
 
270
268
  class Problem < RuntimeError
@@ -1,63 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "redis-dump"
8
- s.version = "0.3.4"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Delano Mandelbaum"]
12
- s.date = "2012-01-05"
13
- s.description = "Backup and restore your Redis data to and from JSON."
14
- s.email = "delano@solutious.com"
15
- s.executables = ["redis-dump", "redis-load", "redis-report"]
16
- s.extra_rdoc_files = [
17
- "LICENSE.txt",
18
- "README.rdoc"
19
- ]
20
- s.files = [
21
- "CHANGES.txt",
22
- "LICENSE.txt",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION.yml",
26
- "bin/redis-dump",
27
- "bin/redis-load",
28
- "bin/redis-report",
29
- "lib/redis/dump.rb",
30
- "redis-dump.gemspec",
31
- "try/10_redis_dump_try.rb",
32
- "try/20_dump_specific_keys_try.rb",
33
- "try/db0.json",
34
- "try/redis-server.conf"
35
- ]
36
- s.homepage = "http://github.com/delano/redis-dump"
37
- s.require_paths = ["lib"]
38
- s.rubyforge_project = "redis-dump"
39
- s.rubygems_version = "1.8.10"
40
- s.summary = "Backup and restore your Redis data to and from JSON."
41
-
42
- if s.respond_to? :specification_version then
43
- s.specification_version = 3
44
-
45
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_runtime_dependency(%q<yajl-ruby>, [">= 0.1"])
47
- s.add_runtime_dependency(%q<redis>, [">= 2.0"])
48
- s.add_runtime_dependency(%q<uri-redis>, [">= 0.4.0"])
49
- s.add_runtime_dependency(%q<drydock>, [">= 0.6.9"])
50
- else
51
- s.add_dependency(%q<yajl-ruby>, [">= 0.1"])
52
- s.add_dependency(%q<redis>, [">= 2.0"])
53
- s.add_dependency(%q<uri-redis>, [">= 0.4.0"])
54
- s.add_dependency(%q<drydock>, [">= 0.6.9"])
55
- end
56
- else
57
- s.add_dependency(%q<yajl-ruby>, [">= 0.1"])
58
- s.add_dependency(%q<redis>, [">= 2.0"])
59
- s.add_dependency(%q<uri-redis>, [">= 0.4.0"])
60
- s.add_dependency(%q<drydock>, [">= 0.6.9"])
61
- end
62
- end
63
-
@@ -0,0 +1,35 @@
1
+ # redis-dump redis config
2
+ # 2013-02-01
3
+
4
+ dir /tmp
5
+ pidfile redisdump-test.pid
6
+ logfile redisdump-test.log
7
+ dbfilename redisdump-test.rdb
8
+
9
+ #requirepass CHANGEME
10
+
11
+ bind 127.0.0.1
12
+ port 6371
13
+ databases 16
14
+
15
+ timeout 30
16
+ daemonize yes
17
+ loglevel notice
18
+
19
+ # FOR LIGHT TRAFFIC:
20
+ #save 300 10
21
+ #save 120 100
22
+ #save 60 1000
23
+
24
+ # NOTE: we need something here to force redis to save
25
+ # when it receives a SHUTDOWN command. 157680000 is 5 yrs.
26
+ # REMOVE IT ONLY IF YOU PLAN TO ALWAYS MOVE
27
+ # AN RDB FILE INTO PLACE EVERY RESTART!
28
+ save 157680000 1
29
+
30
+ rdbcompression yes
31
+
32
+ appendonly no
33
+
34
+ # appendfsync is one of always, everysec, no
35
+ appendfsync everysec
metadata CHANGED
@@ -1,19 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-dump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Delano Mandelbaum
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain: []
12
- date: 2012-12-19 00:00:00.000000000 Z
11
+ cert_chain:
12
+ - !binary |-
13
+ LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUROakNDQWg2Z0F3SUJB
14
+ Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJCTVE4d0RRWURWUVFEREFaa1pX
15
+ eGgKYm04eEdUQVhCZ29Ka2lhSmsvSXNaQUVaRmdsemIyeDFkR2x2ZFhNeEV6
16
+ QVJCZ29Ka2lhSmsvSXNaQUVaRmdOagpiMjB3SGhjTk1UTXdNakEyTVRFMU56
17
+ UTFXaGNOTVRRd01qQTJNVEUxTnpRMVdqQkJNUTh3RFFZRFZRUUREQVprClpX
18
+ eGhibTh4R1RBWEJnb0praWFKay9Jc1pBRVpGZ2x6YjJ4MWRHbHZkWE14RXpB
19
+ UkJnb0praWFKay9Jc1pBRVoKRmdOamIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFF
20
+ QkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEZzFoTXRsMFhzTXVVSwpBS1RnWVd2
21
+ M2dqajd2dUVzRTJFalQrdnlCZzgvTHBxVlZ3WnppaWFlYkpUOUlaaVErc0NG
22
+ cWJpYWtqMGI1M3BJCmhnMXlPYUJFbUg2L1cwTDdyd3pxYVJWOXNXMWVKczlK
23
+ eEZZUUNuZDY3elVuemo4bm5SbE9qRytoaElHK1ZzaWoKbnBzR2J0MjhwZWZ1
24
+ TlpKak81cTJjbEFsZlNuaUlJSGZJc1U3L1N0RVl1NkZVR09qbndyeVowcjV5
25
+ SmxyOVJyRQpHcytxMERXOFFuWjlVcEFmdURGUVp1SXFlS1FGRkxFN25NbUNH
26
+ YUErMEJOMW5MbDNmVkhOYkxIcTdBdms4K1orClp1dXZrZHNjYkhsTy9sKzN4
27
+ Q05RNW5Vbkh3cTBBREFiTUxPbG1pWVl6cVhvV0xqbWVJNm1lL2Nsa3RKQ2ZO
28
+ MlIKb1pHM1VRdnZBZ01CQUFHak9UQTNNQWtHQTFVZEV3UUNNQUF3SFFZRFZS
29
+ ME9CQllFRk1TSk9FdEh6RTRsMGF6dgpNMEpLMGtLTlRvSzFNQXNHQTFVZER3
30
+ UUVBd0lFc0RBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQXRPZEU3M3F4Ck9I
31
+ MnlkaTlvVDJoUzVmOUcweTFaNzBUbHdoK1ZHRXh5Znh6VkU5WHdDK2lQcEp4
32
+ TnJhaUhZZ0YvOS9va3k3WloKUjlxMC90Sm5ldWhBZW5aZGlRa1g3b2k0TzN2
33
+ OXdSUzZZSG9XQnhNUEZLVlJMTlR6dlZKc2JtZnBDQWxwNS81ZwpwczR3UUZ5
34
+ NW1pYkVsR1ZsT29iZi9naHFaMjVIUzlKNmtkMC9DL3J5MEFVdFRvZ3NMN1R4
35
+ R3dUNGtiQ3g2M3ViCjN2eXdFRWhzSlV6ZmQ5N0dDQUJtdFFmUlRsZFgvajdG
36
+ MXovNXdkOHAraGZkb3gxaWliZHM5WnRmYVpBM0t6S24Ka2NoV045QjZ6Zzly
37
+ MVhNUThCTTJKejBYb1BhblBlMzU0K2xXd2pwa1JLYkZvdy9aYlFIY0NMQ3Ey
38
+ NCtONmI2ZwpkZ0tmTkR6d2lEcHFDQT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
39
+ LS0tLS0K
40
+ date: 2013-02-07 00:00:00.000000000 Z
13
41
  dependencies:
14
42
  - !ruby/object:Gem::Dependency
15
43
  name: yajl-ruby
16
- requirement: &70204696859080 !ruby/object:Gem::Requirement
44
+ requirement: !ruby/object:Gem::Requirement
17
45
  none: false
18
46
  requirements:
19
47
  - - ! '>='
@@ -21,10 +49,15 @@ dependencies:
21
49
  version: '0.1'
22
50
  type: :runtime
23
51
  prerelease: false
24
- version_requirements: *70204696859080
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0.1'
25
58
  - !ruby/object:Gem::Dependency
26
59
  name: redis
27
- requirement: &70204696858600 !ruby/object:Gem::Requirement
60
+ requirement: !ruby/object:Gem::Requirement
28
61
  none: false
29
62
  requirements:
30
63
  - - ! '>='
@@ -32,10 +65,15 @@ dependencies:
32
65
  version: '2.0'
33
66
  type: :runtime
34
67
  prerelease: false
35
- version_requirements: *70204696858600
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '2.0'
36
74
  - !ruby/object:Gem::Dependency
37
75
  name: uri-redis
38
- requirement: &70204696858120 !ruby/object:Gem::Requirement
76
+ requirement: !ruby/object:Gem::Requirement
39
77
  none: false
40
78
  requirements:
41
79
  - - ! '>='
@@ -43,10 +81,15 @@ dependencies:
43
81
  version: 0.4.0
44
82
  type: :runtime
45
83
  prerelease: false
46
- version_requirements: *70204696858120
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 0.4.0
47
90
  - !ruby/object:Gem::Dependency
48
91
  name: drydock
49
- requirement: &70204696857640 !ruby/object:Gem::Requirement
92
+ requirement: !ruby/object:Gem::Requirement
50
93
  none: false
51
94
  requirements:
52
95
  - - ! '>='
@@ -54,7 +97,12 @@ dependencies:
54
97
  version: 0.6.9
55
98
  type: :runtime
56
99
  prerelease: false
57
- version_requirements: *70204696857640
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: 0.6.9
58
106
  description: Backup and restore your Redis data to and from JSON.
59
107
  email: delano@solutious.com
60
108
  executables:
@@ -70,18 +118,20 @@ files:
70
118
  - LICENSE.txt
71
119
  - README.rdoc
72
120
  - Rakefile
73
- - VERSION.yml
121
+ - VERSION
74
122
  - bin/redis-dump
75
123
  - bin/redis-load
76
124
  - bin/redis-report
125
+ - gem-public_cert.pem
77
126
  - lib/redis/dump.rb
78
127
  - redis-dump.gemspec
79
128
  - try/10_redis_dump_try.rb
80
129
  - try/20_dump_specific_keys_try.rb
81
130
  - try/db0.json
82
- - try/redis-server.conf
131
+ - try/redis.conf
83
132
  homepage: http://github.com/delano/redis-dump
84
- licenses: []
133
+ licenses:
134
+ - MIT
85
135
  post_install_message:
86
136
  rdoc_options: []
87
137
  require_paths:
@@ -99,8 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
149
  - !ruby/object:Gem::Version
100
150
  version: '0'
101
151
  requirements: []
102
- rubyforge_project: redis-dump
103
- rubygems_version: 1.8.10
152
+ rubyforge_project:
153
+ rubygems_version: 1.8.25
104
154
  signing_key:
105
155
  specification_version: 3
106
156
  summary: Backup and restore your Redis data to and from JSON.
Binary file
@@ -1,4 +0,0 @@
1
- ---
2
- :MAJOR: 0
3
- :MINOR: 3
4
- :PATCH: 4
@@ -1,197 +0,0 @@
1
- # REDIS-DUMP TEST CONFIG -- 2010-11-15
2
-
3
- # Usage:
4
- #
5
- # $ redis-server try/redis-server.conf
6
-
7
- dir /tmp
8
-
9
- pidfile redisdump-test.pid
10
- logfile redisdump-test.log
11
- dbfilename redisdump-test.rdb
12
-
13
- port 6371
14
- bind 127.0.0.1
15
- daemonize yes
16
-
17
- timeout 300
18
-
19
- #loglevel debug
20
- #loglevel verbose
21
- loglevel warning
22
-
23
- databases 16
24
-
25
- save 900 100
26
- save 300 5000
27
-
28
-
29
- rdbcompression yes
30
-
31
- # requirepass foobared
32
- # maxclients 0
33
-
34
- appendonly no
35
- appendfilename redisdump-test.aof
36
-
37
- # TODO: Consider having separate configs when the usecase for Redis
38
- # changes. For example, one for production, another for batch processing.
39
- #
40
- # Nothing is changed from here on out:
41
-
42
- ################################## INCLUDES ###################################
43
-
44
- # Include one or more other config files here. This is useful if you
45
- # have a standard template that goes to all redis server but also need
46
- # to customize a few per-server settings. Include files can include
47
- # other files, so use this wisely.
48
- #
49
- # include /path/to/local.conf
50
- # include /path/to/other.conf
51
-
52
- ################################# REPLICATION #################################
53
-
54
- # Master-Slave replication. Use slaveof to make a Redis instance a copy of
55
- # another Redis server. Note that the configuration is local to the slave
56
- # so for example it is possible to configure the slave to save the DB with a
57
- # different interval, or to listen to another port, and so on.
58
- #
59
- # slaveof <masterip> <masterport>
60
-
61
- # If the master is password protected (using the "requirepass" configuration
62
- # directive below) it is possible to tell the slave to authenticate before
63
- # starting the replication synchronization process, otherwise the master will
64
- # refuse the slave request.
65
- #
66
- # masterauth <master-password>
67
-
68
-
69
- # The fsync() call tells the Operating System to actually write data on disk
70
- # instead to wait for more data in the output buffer. Some OS will really flush
71
- # data on disk, some other OS will just try to do it ASAP.
72
- #
73
- # Redis supports three different modes:
74
- #
75
- # no: don't fsync, just let the OS flush the data when it wants. Faster.
76
- # always: fsync after every write to the append only log . Slow, Safest.
77
- # everysec: fsync only if one second passed since the last fsync. Compromise.
78
- #
79
- # The default is "everysec" that's usually the right compromise between
80
- # speed and data safety. It's up to you to understand if you can relax this to
81
- # "no" that will will let the operating system flush the output buffer when
82
- # it wants, for better performances (but if you can live with the idea of
83
- # some data loss consider the default persistence mode that's snapshotting),
84
- # or on the contrary, use "always" that's very slow but a bit safer than
85
- # everysec.
86
- #
87
- # If unsure, use "everysec".
88
-
89
- # appendfsync always
90
- appendfsync everysec
91
- # appendfsync no
92
-
93
- ################################ VIRTUAL MEMORY ###############################
94
-
95
- # Virtual Memory allows Redis to work with datasets bigger than the actual
96
- # amount of RAM needed to hold the whole dataset in memory.
97
- # In order to do so very used keys are taken in memory while the other keys
98
- # are swapped into a swap file, similarly to what operating systems do
99
- # with memory pages.
100
- #
101
- # To enable VM just set 'vm-enabled' to yes, and set the following three
102
- # VM parameters accordingly to your needs.
103
-
104
- vm-enabled no
105
- # vm-enabled yes
106
-
107
- # This is the path of the Redis swap file. As you can guess, swap files
108
- # can't be shared by different Redis instances, so make sure to use a swap
109
- # file for every redis process you are running. Redis will complain if the
110
- # swap file is already in use.
111
- #
112
- # The best kind of storage for the Redis swap file (that's accessed at random)
113
- # is a Solid State Disk (SSD).
114
- #
115
- # *** WARNING *** if you are using a shared hosting the default of putting
116
- # the swap file under /tmp is not secure. Create a dir with access granted
117
- # only to Redis user and configure Redis to create the swap file there.
118
- vm-swap-file /tmp/redis.swap
119
-
120
- # vm-max-memory configures the VM to use at max the specified amount of
121
- # RAM. Everything that deos not fit will be swapped on disk *if* possible, that
122
- # is, if there is still enough contiguous space in the swap file.
123
- #
124
- # With vm-max-memory 0 the system will swap everything it can. Not a good
125
- # default, just specify the max amount of RAM you can in bytes, but it's
126
- # better to leave some margin. For instance specify an amount of RAM
127
- # that's more or less between 60 and 80% of your free RAM.
128
- vm-max-memory 0
129
-
130
- # Redis swap files is split into pages. An object can be saved using multiple
131
- # contiguous pages, but pages can't be shared between different objects.
132
- # So if your page is too big, small objects swapped out on disk will waste
133
- # a lot of space. If you page is too small, there is less space in the swap
134
- # file (assuming you configured the same number of total swap file pages).
135
- #
136
- # If you use a lot of small objects, use a page size of 64 or 32 bytes.
137
- # If you use a lot of big objects, use a bigger page size.
138
- # If unsure, use the default :)
139
- vm-page-size 32
140
-
141
- # Number of total memory pages in the swap file.
142
- # Given that the page table (a bitmap of free/used pages) is taken in memory,
143
- # every 8 pages on disk will consume 1 byte of RAM.
144
- #
145
- # The total swap size is vm-page-size * vm-pages
146
- #
147
- # With the default of 32-bytes memory pages and 134217728 pages Redis will
148
- # use a 4 GB swap file, that will use 16 MB of RAM for the page table.
149
- #
150
- # It's better to use the smallest acceptable value for your application,
151
- # but the default is large in order to work in most conditions.
152
- vm-pages 134217728
153
-
154
- # Max number of VM I/O threads running at the same time.
155
- # This threads are used to read/write data from/to swap file, since they
156
- # also encode and decode objects from disk to memory or the reverse, a bigger
157
- # number of threads can help with big objects even if they can't help with
158
- # I/O itself as the physical device may not be able to couple with many
159
- # reads/writes operations at the same time.
160
- #
161
- # The special value of 0 turn off threaded I/O and enables the blocking
162
- # Virtual Memory implementation.
163
- vm-max-threads 4
164
-
165
- ############################### ADVANCED CONFIG ###############################
166
-
167
- # Glue small output buffers together in order to send small replies in a
168
- # single TCP packet. Uses a bit more CPU but most of the times it is a win
169
- # in terms of number of queries per second. Use 'yes' if unsure.
170
- glueoutputbuf yes
171
-
172
- # Hashes are encoded in a special way (much more memory efficient) when they
173
- # have at max a given numer of elements, and the biggest element does not
174
- # exceed a given threshold. You can configure this limits with the following
175
- # configuration directives.
176
- hash-max-zipmap-entries 64
177
- hash-max-zipmap-value 512
178
-
179
- # Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
180
- # order to help rehashing the main Redis hash table (the one mapping top-level
181
- # keys to values). The hash table implementation redis uses (see dict.c)
182
- # performs a lazy rehashing: the more operation you run into an hash table
183
- # that is rhashing, the more rehashing "steps" are performed, so if the
184
- # server is idle the rehashing is never complete and some more memory is used
185
- # by the hash table.
186
- #
187
- # The default is to use this millisecond 10 times every second in order to
188
- # active rehashing the main dictionaries, freeing memory when possible.
189
- #
190
- # If unsure:
191
- # use "activerehashing no" if you have hard latency requirements and it is
192
- # not a good thing in your environment that Redis can reply form time to time
193
- # to queries with 2 milliseconds delay.
194
- #
195
- # use "activerehashing yes" if you don't have such hard requirements but
196
- # want to free memory asap when possible.
197
- activerehashing yes