{ "info": { "author": "maralla", "author_email": "imaralla@icloud.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development" ], "description": "# Ruskit\n\n[![Build Status](https://travis-ci.org/eleme/ruskit.svg?branch=master)](https://travis-ci.org/eleme/ruskit)\n[![Version](https://img.shields.io/pypi/v/ruskit.svg)](https://pypi.python.org/pypi/ruskit)\n\nRedis cluster administration toolkit.\n\n## Usage\n\n```bash\npip install ruskit\n# Note that `addslaves` command requires python-igraph which is not installed by default\n# Run the command below if you need `addslaves`\npip install ruskit[addslaves]\n```\n\n##### Create cluster\n\n```bash\nruskit create -s 1 192.168.0.11:{8000,8001,8002} 192.168.0.12:{8000,8001,8002}\n```\n\n##### Add nodes\n\n```bash\n# Add masters:\nruskit add 192.168.0.11:8000 192.168.0.13:8000 192.168.0.14:8000\n\n# Add slaves:\n# ruskit add ,\nruskit add 192.168.0.11:8000 192.168.0.14:8001,192.168.0.13:8000\n\n# ruskit addslaves [--peek] [--slaves-limit ] [ ...]\nruskit addslaves --peek --slaves-limit 3 192.168.0.11:8000 192.168.0.14:8001 192.168.0.14:8002\n```\n\n##### Query cluster info\n\n```bash\nruskit info 192.168.0.11:8000\n```\n\n##### Delete nodes\n\n```bash\nruskit delete 192.168.0.11:8000 192.168.0.13:8000\n```\n\n##### Migrate slots\n\n```bash\n# migrate 100 slots from 192.168.0.11:8000 to 192.168.0.12:8000\nruskit migrate -d 192.168.0.12:8000 -c 100 192.168.0.11:8000\n\n# migrate all slots from 192.168.0.11:8000 to 192.168.0.12:8000\nruskit migrate -d 192.168.0.12:8000 192.168.0.11:8000\n\n# migrate slot 866 from 192.168.0.11:8000 to 192.168.0.12:8000\nruskit migrate -d 192.168.0.12:8000 -s 866 192.168.0.11:8000\n\n# migrate 100 slots from 192.168.0.11:8000 to other nodes in the cluster\nruskit migrate -c 100 192.168.0.11:8000\n\n# migrate 100 slots from the cluster to 192.168.0.11:8000\nruskit migrate -c 100 -i 192.168.0.11:8000\n```\n\n##### Balance slots\n\n```bash\nruskit reshard 192.168.0.11:8000\n```\n\n##### Fix cluster\n\n```bash\nruskit fix 192.168.0.11:8000\n```\n\n##### Replicate\n\n```bash\nruskit replicate 192.168.0.14:8001 192.168.0.11:8000\n```\n\n##### Destroy cluster\n\n```bash\nruskit destroy 192.168.0.11:8000\n```\n\n##### Flushall data\n\n```bash\nruskit flushall 192.168.0.11:8000\n```\n\n##### View slowlog(Recent 128 logs per node)\n\n```bash\nruskit slowlog 192.168.0.11:8000\n```\n\n##### View nodes distribution\n```bash\n# ruskit peek \nruskit peek 192.168.0.11:8000\n```\n\n## Test\n```\npip install -r test_requirements.txt\npy.test tests/\n```", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/eleme/ruskit", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "ruskit", "package_url": "https://pypi.org/project/ruskit/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ruskit/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/eleme/ruskit" }, "release_url": "https://pypi.org/project/ruskit/0.0.23/", "requires_dist": null, "requires_python": null, "summary": "Redis cluster administration toolkit", "version": "0.0.23" }, "last_serial": 2553178, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "7528cecf3dcfcea986cb7caff4a5f3db", "sha256": "6ab65340ed23970ffadaf33ce29c21835e2205a376e27b4dbd5e49b0dd745c22" }, "downloads": -1, "filename": "ruskit-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7528cecf3dcfcea986cb7caff4a5f3db", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12105, "upload_time": "2015-09-23T12:03:34", "url": "https://files.pythonhosted.org/packages/d7/23/a8c4d6b32eec482f689d2366c2ca3b90b7fe5307a57e04228bee432b2295/ruskit-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e68eba06528ab051e54b25c72873652", "sha256": "70ebd73f4f8e537be603f0be0c90f475c7dd3f6e2da85efee9ccbfdd4a3ba34c" }, "downloads": -1, "filename": "ruskit-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8e68eba06528ab051e54b25c72873652", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9386, "upload_time": "2015-09-23T12:03:39", "url": "https://files.pythonhosted.org/packages/05/cd/b4f3b7a07fc89f3cad09c0355b074759a439f7ceba00a556a9dcafca705d/ruskit-0.0.2.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "3c3eb6df3cc938a09ab2e3cbd37a6809", "sha256": "e07cc321ccd20501ec67124afb9fca05acf23dbf5a2593201e3a5ee39e044d01" }, "downloads": -1, "filename": "ruskit-0.0.22.tar.gz", "has_sig": false, "md5_digest": "3c3eb6df3cc938a09ab2e3cbd37a6809", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18553, "upload_time": "2016-12-12T05:57:33", "url": "https://files.pythonhosted.org/packages/09/65/92406559f721c3937792e82762ea06c47c3074ddb8789973827ec2d50999/ruskit-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "8d1fce777138732cb5f000614e89b0bb", "sha256": "01f99e9645e2286c8858e04e0fc29b97a246c750898d02c216c9fae0f65f0d01" }, "downloads": -1, "filename": "ruskit-0.0.23.tar.gz", "has_sig": false, "md5_digest": "8d1fce777138732cb5f000614e89b0bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18615, "upload_time": "2017-01-04T08:06:24", "url": "https://files.pythonhosted.org/packages/4f/53/1f180eca2d408dd789ecfa9954046127d07d0b4d5082ff60f0842e1fdc4e/ruskit-0.0.23.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3a7ba97ee0740db25cd54a3b3f819e9c", "sha256": "8ef5c43af94471cd3cece2825b08778292198f2f1dbccfb84252b876843a0f29" }, "downloads": -1, "filename": "ruskit-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3a7ba97ee0740db25cd54a3b3f819e9c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12292, "upload_time": "2015-09-23T13:08:03", "url": "https://files.pythonhosted.org/packages/a4/4b/9c2cfcfebede77c8fb18dcc8d9a83fc2a9bef1408e4f6118f545db8c1ecd/ruskit-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9eefc86b4a1389ff7babbde7b63e661f", "sha256": "da8ab3f71918b5aa4a441222fe2ccaa71ff03f0eb000d10d9737409d4ad9d214" }, "downloads": -1, "filename": "ruskit-0.0.3.tar.gz", "has_sig": false, "md5_digest": "9eefc86b4a1389ff7babbde7b63e661f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9571, "upload_time": "2015-09-23T13:08:20", "url": "https://files.pythonhosted.org/packages/8b/24/70b73cfd242e806709e6ba7a71a3e111e6c9d51a9f1eebf2230cea1251a9/ruskit-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "b20dc3789efab76727a021ef12189037", "sha256": "ebc3034cf4e3f5f4a8029f1c8294588dc807b6833ec148f7026d2cc0f4981db9" }, "downloads": -1, "filename": "ruskit-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b20dc3789efab76727a021ef12189037", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12444, "upload_time": "2016-01-19T08:56:35", "url": "https://files.pythonhosted.org/packages/85/be/fa2e592e1d36794cf2355db02720f6ea124121a1511c1e2fce2bc5779adb/ruskit-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c57146e728b1f435920948622019fbf", "sha256": "a8baf5836c1202a27f555170a9ea8b4f3e80381854ee07418349cdec87d18281" }, "downloads": -1, "filename": "ruskit-0.0.4.tar.gz", "has_sig": false, "md5_digest": "9c57146e728b1f435920948622019fbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9697, "upload_time": "2016-01-19T08:56:46", "url": "https://files.pythonhosted.org/packages/22/6f/96d99f746fcdf80bf40009f142faeb187b5c35f885cb799dcab9c44b2dc4/ruskit-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "1e5a8e82df8a6b8c895a974b94b4d018", "sha256": "b0282fc2fa72127ada213aa75cca99a6ef919f42350d7b6b6c31fb25d7d53ed8" }, "downloads": -1, "filename": "ruskit-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e5a8e82df8a6b8c895a974b94b4d018", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12444, "upload_time": "2016-01-19T09:13:47", "url": "https://files.pythonhosted.org/packages/4d/a0/ff8c95c5caf915ca2d7a48023a96c9da2125a5c2b34cf386bdb6d3ae6fef/ruskit-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fb9b0d73f81db1e9fcc30f65995af53", "sha256": "b52a86cf65109ec1b10ac0415f431212726d53b036b1c82e6ea5d2d4f5555cf3" }, "downloads": -1, "filename": "ruskit-0.0.5.tar.gz", "has_sig": false, "md5_digest": "2fb9b0d73f81db1e9fcc30f65995af53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9693, "upload_time": "2016-01-19T09:13:59", "url": "https://files.pythonhosted.org/packages/a5/52/cf918b8c8391ce8fdcd1ec2bf14b27c24b0cb1d91930e3403b58580cf6cc/ruskit-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "b86615c1e3cf3a572b1c804f2fffc0ae", "sha256": "0555e0849ff8fd6be5fbaedf3afd53d6021faa0be7e01127247d095577f93d54" }, "downloads": -1, "filename": "ruskit-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b86615c1e3cf3a572b1c804f2fffc0ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12718, "upload_time": "2016-01-26T07:13:16", "url": "https://files.pythonhosted.org/packages/bf/c1/7fe765a7b68451afba1486892096d5d5e1b87ee4ffab32553d69a0580ccb/ruskit-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6af3e70ef8a8ecb4657bbaf018a3ac3", "sha256": "f1703f1f8c52bbfd1ee7ee5de7ce3ebeff3676d860ee09fe5258e0102532c4f4" }, "downloads": -1, "filename": "ruskit-0.0.6.tar.gz", "has_sig": false, "md5_digest": "d6af3e70ef8a8ecb4657bbaf018a3ac3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9927, "upload_time": "2016-01-26T07:13:38", "url": "https://files.pythonhosted.org/packages/9a/1a/cc355ed612065e9f2f1cabdcaa120fa819d5976fd9b2dd99c38bd1d8d4b7/ruskit-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "caf6fce4a05d5b5a8e7cdc72e3615ccb", "sha256": "29640934fcc4f41246b120304e21bd549ed78ae90f74eecccfa1df827692ac08" }, "downloads": -1, "filename": "ruskit-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "caf6fce4a05d5b5a8e7cdc72e3615ccb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13089, "upload_time": "2016-03-25T03:03:29", "url": "https://files.pythonhosted.org/packages/b7/71/455642eadebd5b636af4012f0599182e3a7c55858783e8fa8e53a7fe0a03/ruskit-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04dd6bf7b58b10d883b758f10686e442", "sha256": "a6b89714484eb003ac1078491632cc6de22026e866ab9f212077b524b1faec75" }, "downloads": -1, "filename": "ruskit-0.0.7.tar.gz", "has_sig": false, "md5_digest": "04dd6bf7b58b10d883b758f10686e442", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10285, "upload_time": "2016-03-25T03:03:39", "url": "https://files.pythonhosted.org/packages/06/0f/3f88954c6364eb77ee379fd9a77c5831d9e42a0d2e12dbdb6eab033def47/ruskit-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d1fce777138732cb5f000614e89b0bb", "sha256": "01f99e9645e2286c8858e04e0fc29b97a246c750898d02c216c9fae0f65f0d01" }, "downloads": -1, "filename": "ruskit-0.0.23.tar.gz", "has_sig": false, "md5_digest": "8d1fce777138732cb5f000614e89b0bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18615, "upload_time": "2017-01-04T08:06:24", "url": "https://files.pythonhosted.org/packages/4f/53/1f180eca2d408dd789ecfa9954046127d07d0b4d5082ff60f0842e1fdc4e/ruskit-0.0.23.tar.gz" } ] }