Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

redis-copy

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redis-copy

  • 1.0.0
  • Rubygems
  • Socket score

Version published
Maintainers
2
Created
Source

Redis::Copy

This utility provides a way to move the contents of one redis DB to another redis DB. It is inspired by the redis-copy.rb script included in the redis source, but aims to always support all object types and to use the most-efficient methods and commands available to your redis versions:

  • if available on both dbs, will use DUMP/RESTORE commands (redis v2.6+)
  • if available on source db, will use SCAN instead of KEYS (redis v2.8+)

Installation

$ gem install redis-copy

Usage

The current options can be grabbed using the --help flag.

$ redis-copy --help
redis-copy v1.0.0 (with redis-rb 3.0.6)
Usage: redis-copy [options] <source> <destination>
    <source> and <destination> must be redis connection uris
    like [redis://][<username>:<password>@]<hostname>[:<port>][/<db>]

Specific options:
    -p, --pattern PATTERN            Only transfer matching keys (default *)
                                     See http://redis.io/commands/keys for more info.
    -v, --[no-]verify [PERCENT]      Verify percentage of transfers -- VERY SLOW (default 0)
    -n, --[no-]allow-nonempty        Allow non-empty destination (default false)
    -f, --[no-]fail-fast             Abort on first failure (default false)
        --[no-]pipeline              Pipeline redis commands where available (default true)
    -r, --require FILENAME           Require a script; useful for loading third-party
                                     implementations of key-emitter or copy strategies.
                                     Relative paths *must* begin with `../' or `./'.
    -d, --[no-]debug                 Write debug output (default false)
    -t, --[no-]trace                 Enable backtrace on failure (default false)
        --[no-]prompt                Prompt for confirmation (default true)
        --[no-]dry-run               Output configuration and exit

Example:

$ redis-copy --no-prompt old.redis.host/9 new.redis.host:6380/3
Source:      redis://old.redis.host:6379/9
Destination: redis://new.redis.host:6380/3 (empty)
Key Emitter: Scan
Strategy:    DumpRestore
PROGRESS {:success=>1000, :attempt=>1000}
PROGRESS {:success=>2000, :attempt=>2000}
PROGRESS {:success=>3000, :attempt=>3000}
PROGRESS {:success=>4000, :attempt=>4000}
DONE: {:success=>4246, :attempt=>4246}

Extensibility:

RedisCopy uses the implements gem to define interfaces for key-emitter and copy strategies, so implementations can be supplied by third-parties, secondary gems, or even a local script; the interface shared examples are even available on your load-path so you can ensure your implementation adheres to the interface.

See the existing implementations and their specs for examples, and use the --require command-line flag to load up your own. Since implements treats last-loaded implementations as inherently better, RedisCopy will automatically pick up your implementation and attempt to use it before the bundled implementations.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

FAQs

Package last updated on 20 Nov 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc