Skip to content
README.rst 2.61 KiB
Newer Older
redis-export
============================

Export redis keys with a given prefix or pattern, which later can be imported
to another redis server. To export all keys, use '*' as pattern.

Installation
------------

To install redis-export, simply:

.. code-block:: bash

   $ python3 -m pip install redis-export

You should add ~/.local/bin/ to your PATH.

Quick Start
-----------

Yuanle Song's avatar
Yuanle Song committed
.. code-block:: bash

   redis-export PREFIX_OR_PATTERN OUTPUT_FILE
Yuanle Song's avatar
Yuanle Song committed
   redis-import INPUT_FILE

For example,

.. code-block:: bash

   redis-export 'phonebook:' ~/d/t1.json
Yuanle Song's avatar
Yuanle Song committed
   # redis-export 'phonebook:*:name:*' ~/d/t1.json
   redis-import --host redis.example.com ~/d/t1.json
For more usage help, run the command with ``--help`` option.
Yuanle Song's avatar
Yuanle Song committed

Documentation
-------------

redis-export will export keys with given pattern to a json file (keys and
values both base64 encoded).

Yuanle Song's avatar
Yuanle Song committed
redis-import will import those keys and values back to redis.

Implementation Detail
-------------------------

- SCAN is used to iterate over keys with given pattern.
- DUMP is used to dump the key.
- RESTORE is used to restore a key. force-replace param is set to TRUE.

Exported file is a json list, each list item is of form (key, dump_value).
The redis key and dump value is encoded in base64 in order to fit in regular
json.
Source Code
------------

Source code is hosted at https://gitlab.emacsos.com/sylecn/redis-export

You may clone it via ssh or https protocol

.. code-block:: bash

   git clone git@gitlab.emacsos.com:sylecn/redis-export.git
   git clone https://gitlab.emacsos.com/sylecn/redis-export.git

Copyright (C) 2022, 2023 Yuanle Song <sylecn@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

ChangeLog
---------

* v0.3.1 2023-03-13

  - support auth related options. Use the same options as redis-cli.
  - add source code URL in README.rst

* v0.2.0 2022-09-24

  - update README.rst, applied license, distributed on PyPI.

* v0.1.2 2022-09-18

  - bugfix: when pattern contains '*' should not error

* v0.1.0 2021-11-21

  - initial release