{ "info": { "author": "Yipit Coders", "author_email": "coders@yipitdata.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Database" ], "description": "# DRedis: Disk-based Redis implementation\n\nRedis is a great key-value database and it's extremely fast because it's in-memory.\nSome people want Redis's rich data types without having to worry about the memory limitations. For those\nthat can afford slower performance and want unlimited storage, DRedis may be an alternative.\n\n**WARNING: This project is still experimental and it doesn't implement all Redis commands!**\n\n\n\n## Installing\n\nMake sure to install the [LevelDB](https://github.com/google/leveldb) C++ library (`apt-get install libleveldb-dev` or `brew install leveldb`) and then run:\n\n```shell\n$ pip install dredis\n```\n\nNote: The LMDB backend doesn't require external dependencies.\n\n## Running\n\n\n```shell\n$ dredis --dir /tmp/dredis-data\n```\n\nTo know about all of the options, use `--help`:\n\n```shell\n$ dredis --help\nusage: dredis [-h] [-v] [--host HOST] [--port PORT] [--dir DIR]\n [--backend {lmdb,leveldb,memory}]\n [--backend-option BACKEND_OPTION] [--rdb RDB] [--debug]\n [--flushall] [--readonly]\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n --host HOST server host (defaults to 127.0.0.1)\n --port PORT server port (defaults to 6377)\n --dir DIR directory to save data (defaults to a temporary\n directory)\n --backend {lmdb,leveldb,memory}\n key/value database backend (defaults to leveldb)\n --backend-option BACKEND_OPTION\n database backend options (e.g., --backend-option\n map_size=BYTES)\n --rdb RDB RDB file to seed dredis\n --debug enable debug logs\n --flushall run FLUSHALL on startup\n --readonly accept read-only commands\n```\n\n\nRunning dredis with Docker locally (port 6377 on the host):\n\n```shell\n$ docker-compose up\n```\n\n\n\n## Backends\n\nThere's support for LevelDB, LMDB, and an experimental memory backend.\nAll backend options should be passed in the command line as `--backend-option NAME1=value1 --backend-option NAME2=value2` (the values must be JSON-compatible).\n\n### LevelDB\nLevelDB is the easiest persistent backend because it doesn't require any option tweaking to get it to work reliably.\n\n#### Options\n\nWe use [plyvel](https://github.com/wbolster/plyvel) as the LevelDB backend. All available options are parameters of [plyvel.DB](https://plyvel.readthedocs.io/en/latest/api.html#DB).\n\nThe current default options for LevelDB are:\n* `name`: The same value as the `--dir` option\n* `create_if_missing`: `True`\n\n\n### LMDB\n\nThe performance of LMDB can be better than LevelDB and we're considering making it the default backend in the future.\n\n#### Options\n\nWe use [py-lmdb](https://github.com/dw/py-lmdb/) as the LMDB backend. All available options are parameters of [lmdb.Environment](https://lmdb.readthedocs.io/en/release/#environment-class).\nWe recommend that you think ahead and change the `map_size` parameter according to your needs \u2014 this is the maximum size of the LMDB database file on disk.\n\nThe current default options for LMDB are:\n* `path`: The same value as the `--dir` option\n* `map_size`: `1073741824` (1GB)\n* `map_async`: `True`\n* `writemap`: `True`\n* `readahead`: `False`\n* `metasync`: `False`\n\n### Memory\n\nThis is experimental and doesn't persist to disk. It was created to have a baseline to compare persistent backends.\n\n\n#### Options\nNone.\n\n\n## Supported Commands\n\nCommand signature | Type\n---------------------------------------------|-----\nCOMMAND\\* | Server\nCONFIG GET parameter | Server\nCONFIG HELP | Server\nCONFIG SET parameter value | Server\nDBSIZE | Server\nFLUSHALL | Server\nFLUSHDB | Server\nSAVE | Server\nDEL key [key ...] | Keys\nDUMP key | Keys\nEXISTS key [key ...] | Keys\nEXPIRE key ttl\\** | Keys\nKEYS pattern | Keys\nRENAME key newkey | Keys\nRESTORE key ttl serialized-value [REPLACE]\\***| Keys\nTTL key | Keys\nTYPE key | Keys\nAUTH | Connection\nPING [msg] | Connection\nSELECT db | Connection\nGET key | Strings\nGETRANGE key start end | Strings\nINCR key | Strings\nINCRBY key increment | Strings\nSET key value | Strings\nSADD key value [value ..] | Sets\nSCARD key | Sets\nSISMEMBER key value | Sets\nSMEMBERS key | Sets\nEVAL script numkeys [key ...] [arg ...] | Scripting\nZADD key [NX\\|XX] score member [score member ...] | Sorted Sets\nZCARD key | Sorted Sets\nZCOUNT key min_score max_score | Sorted Sets\nZRANGE key start top [WITHSCORES] | Sorted Sets\nZRANGEBYSCORE key min_score max_score [WITHSCORES] [LIMIT offset count] | Sorted Sets\nZRANK key member | Sorted Sets\nZREM key member [member ...] | Sorted Sets\nZSCAN key cursor [MATCH pattern] [COUNT count]|Sorted Sets\nZSCORE key member | Sorted Sets\nZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] | Sorted Sets\nHDEL key field [field ...] | Hashes\nHGET key value | Hashes\nHGETALL key | Hashes\nHINCRBY key field increment | Hashes\nHKEYS key | Hashes\nHLEN key | Hashes\nHSET key field value [field value ...] | Hashes\nHSETNX key field value | Hashes\nHVALS value | Hashes\n\nFootnotes:\n\n* \\*`COMMAND`'s reply is incompatible at the moment, it returns a flat array with command names (their arity, flags, positions, or step count are not returned).\n* \\**`EXPIRE` doesn't set key expiration yet, it's a no-op command\n* \\***`RESTORE` doesn't work with Redis strings compressed with LZF or encoded as `OBJ_ENCODING_INT`; also doesn't work with sets encoded as `OBJ_ENCODING_INTSET`, nor hashes and sorted sets encoded as `OBJ_ENCODING_ZIPLIST`.\n* `CONFIG GET`, `CONFIG HELP`, and `CONFIG SET` are specific to dredis. The commands' signature and behavior are equivalent to the ones in Redis\n\n## How is DRedis implemented\n\nInitially DRedis had its own filesystem structure, but then it was converted to use [LevelDB](https://github.com/google/leveldb), which is a lot more reliable and faster (nowadays there's also the LMDB backend).\n\nOther projects implement similar features to what's available on DRedis, but they aren't what Yipit needed when the project started. Some of them\nrely on multiple threads and compromise on consistency, don't implement Lua scripts, or don't implement sorted sets correctly. We ran the DRedis tests against a few solutions and they failed (which means they're not fully compatible).\n\nSimilar projects:\n\n* https://github.com/yinqiwen/ardb\n * `ardb` seems to be the most similar in scope and a good candidate for contributions or a fork. Their sorted sets implementation has a bug with negative scores. It's a large C++ project with lots of features.\n* https://github.com/Qihoo360/pika\n * no Lua support. This is a large C++ project and its documentation is in Chinese. The project seems to be stable and is used by large Chinese companies.\n* https://github.com/KernelMaker/blackwidow\n * a C++ library, not a Redis-like server\n* https://github.com/siddontang/ledisdb\n * Similar to Redis but different commands\n* https://github.com/reborndb/qdb\n * No Lua support and no longer maintained\n* https://github.com/alash3al/redix\n * No Lua and no sorted set support\n* https://github.com/meitu/titan\n * No Lua support and not enough sorted set support\n\n\n## Lua support\n\nLua is supported through the [lupa](https://github.com/scoder/lupa) library.\n\n\n## Challenges\n\n### Data Consistency\n\nWe rely on the backends' consistency properties and we use batches/transactions to stay consistent. Tweaking the backend options may impair consistency (e.g., `sync=false` for LMDB).\n\n### Cluster mode & Replication\n\nReplication, key distribution, and cluster mode are not supported.\nIf you want higher availability you can create multiple servers that share or replicate a disk (consistency may suffer when replicating).\nUse DNS routing or a network load balancer to route requests properly.\n\n### Backups\n\nThe command `SAVE` creates a snapshot in the same format as Redis's RDB version 7 (compatible with Redis 3.x).\nWe recommend you to run `SAVE` on a secondary `dredis` process, otherwise the server will hang during the snapshot (consistency guarantees are higher with LMDB as the backend).\nThe command `BGSAVE` may be supported in the future.\n\nOther backups solutions involve backing up the files created by the backend.\nA straightforward approach is to have periodic backups to an object storage such as Amazon S3 orr use a block storage solution and perform periodic backups (e.g., AWS EBS).\n\nIf you use `SAVE` from a secondary process or backup the data directory, there shouldn't be any significant impact on the main server.\n\n\n## Why Python\n\nBecause it's a good language to get things off the ground quickly and everybody at Yipit knows it well.\nIf this becomes a valuable project, other languages will be evaluated \u2014 the language of choice won't affect much of the I/O bottleneck, but it may bring good performance benefits.\nWe're experimenting with [Cython](https://cython.org/) to get better performance without having to rewrite large chunks in C.\n\nThe project will migrate to Python 3 soon.\n\n\n## Didn't you have better names?\n\n[@andrewgross](https://github.com/andrewgross) suggested [REDISK](https://twitter.com/awgross/status/1031962830633934849). The name will only matter if this project survives, it's still an experiment.\nAlso, [other projects use the name redisk](https://github.com/search?q=redisk&type=Repositories).\n\n[@nadlerjessie](https://github.com/nadlerjessie) suggested we pronounce dredis as \"Doctor Redis\".\n\n\n## Releasing dredis\n\n1. Make sure you have all important changes in the top section of `CHANGELOG.md`\n1. Make sure your PyPI credentials are correct in `~/.pypirc`\n1. Run `make release`\n1. Enter the new version (e.g., `1.0.0`)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Yipit/dredis", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "dredis", "package_url": "https://pypi.org/project/dredis/", "platform": "", "project_url": "https://pypi.org/project/dredis/", "project_urls": { "Homepage": "https://github.com/Yipit/dredis" }, "release_url": "https://pypi.org/project/dredis/2.5.0/", "requires_dist": [ "lupa", "six", "plyvel", "lmdb", "python-lzf" ], "requires_python": "", "summary": "Disk-based Redis implementation", "version": "2.5.0" }, "last_serial": 5863646, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "aa77d25b9c549bdf80c8744d5b8043ac", "sha256": "8ae9eb8eb9b6dbf1c6989984dc8f5731daea4a5a3599e15a37082a1aa83d9f8c" }, "downloads": -1, "filename": "dredis-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "aa77d25b9c549bdf80c8744d5b8043ac", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14297, "upload_time": "2018-09-19T15:01:32", "url": "https://files.pythonhosted.org/packages/54/ce/cbf87989b153981a558ff45247df837005ef19889509e2c6a37a31c0b53e/dredis-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79349a7a425f2a026c25a4410bda089a", "sha256": "c1760bee6256bb0430b7ef88e28bb3c733a3bb6c442fa3f3289e6902f061e0a8" }, "downloads": -1, "filename": "dredis-0.0.2.tar.gz", "has_sig": false, "md5_digest": "79349a7a425f2a026c25a4410bda089a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15870, "upload_time": "2018-09-19T15:01:33", "url": "https://files.pythonhosted.org/packages/41/13/f97462aa01bbf8c3a602d1c9a5d70a48fa1b7c252ea399a90121a5b7738f/dredis-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "83f5c840e160da2c5018e08051235a22", "sha256": "0586d7ecd36403cffd4b69a22348d2b35e8fea0b56869ae393d0e700ac4d4acc" }, "downloads": -1, "filename": "dredis-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "83f5c840e160da2c5018e08051235a22", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15050, "upload_time": "2018-09-27T18:00:14", "url": "https://files.pythonhosted.org/packages/1f/90/eaacd11dde21237ca51999011d78decf8fc457a1a6920f7885f3a93409ab/dredis-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84a0b9032b5a3d1d0bdeff545536690f", "sha256": "6e8d386c1ec15c19e812ac451878a72bf0c838f51bfb996c4bf5eb2316e196fd" }, "downloads": -1, "filename": "dredis-0.0.3.tar.gz", "has_sig": false, "md5_digest": "84a0b9032b5a3d1d0bdeff545536690f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16335, "upload_time": "2018-09-27T18:00:15", "url": "https://files.pythonhosted.org/packages/73/af/7e6438c729a30988ae7ed98335c1c9e5e01510a6e5efe81ca2d28ba0f8b7/dredis-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "410029b146a8ed1bf0e0fd19fa145315", "sha256": "6dda3af44bc08ba26d58bc67195886479842e03d377befa040802ae6975d2403" }, "downloads": -1, "filename": "dredis-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "410029b146a8ed1bf0e0fd19fa145315", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15086, "upload_time": "2018-10-12T19:49:32", "url": "https://files.pythonhosted.org/packages/34/2e/446615eba9d1a6d798956cd9b21d92066f97e6a8497edac02da5ce4a4bad/dredis-0.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "325091707493a147ba51b704e81c4aab", "sha256": "b06c463bf8eaccfa5ae174ae48dbc076dc9dbf10e20c2b4df9b31f7fce6cb620" }, "downloads": -1, "filename": "dredis-0.0.4.tar.gz", "has_sig": false, "md5_digest": "325091707493a147ba51b704e81c4aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16382, "upload_time": "2018-10-12T19:49:34", "url": "https://files.pythonhosted.org/packages/ab/c5/b61719b9411e885fb5684d03867589360703713357f87cab02a8ce170bf9/dredis-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "cee36f732561d5bc96d6c5c927f5829c", "sha256": "a6bdd8d9fbc59e073235c469527f1af3d83b6e6f5540af38994aa356f7a641d1" }, "downloads": -1, "filename": "dredis-0.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "cee36f732561d5bc96d6c5c927f5829c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15090, "upload_time": "2018-10-15T20:57:47", "url": "https://files.pythonhosted.org/packages/01/17/feb96b4c5cf5dcd4352a982d3a39dacb518ad614fe60c4b40c67e30aa279/dredis-0.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63a0dd67cdf6fcaef7cf97113f2fa7b0", "sha256": "a0f71ab79de8f2bccd372f49465e3f3a103d8c48c453293248cb45cee3e8b8bd" }, "downloads": -1, "filename": "dredis-0.0.5.tar.gz", "has_sig": false, "md5_digest": "63a0dd67cdf6fcaef7cf97113f2fa7b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16385, "upload_time": "2018-10-15T20:57:48", "url": "https://files.pythonhosted.org/packages/65/dd/ff867fb21710a7dfe56c1f995fb3d19d3275ee2a3e055e7cc02549fcd4cc/dredis-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "67f77fb0a3929a61c2c6a83b3f5b24b0", "sha256": "a827532eaab0996cc855fbf8c76af4c04032719e3d688214ef0df2a86aba21a4" }, "downloads": -1, "filename": "dredis-0.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "67f77fb0a3929a61c2c6a83b3f5b24b0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15097, "upload_time": "2018-10-15T22:19:55", "url": "https://files.pythonhosted.org/packages/9d/94/f53d2616bc9ba50dbd49ed991982b3056343d5808a1c67e12ff3a39b676f/dredis-0.0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70582bcc580e286b22ebc51864cfb86a", "sha256": "f784b09fefcf38683fa97baddb33b64bbbb1cb60458d95abd2753c0607933dac" }, "downloads": -1, "filename": "dredis-0.0.6.tar.gz", "has_sig": false, "md5_digest": "70582bcc580e286b22ebc51864cfb86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16385, "upload_time": "2018-10-15T22:19:56", "url": "https://files.pythonhosted.org/packages/80/d1/54ba3fbddd41c905fa5f5ed01ddc81e47f41214f8f5e75bb0d2416837454/dredis-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "f6773e0ff918fe4f07890aca853e5b33", "sha256": "0bc3289d585ac1b5675b1ff745a5870d00e6f0f3e1a6ed63172ceac75b54eaea" }, "downloads": -1, "filename": "dredis-0.0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "f6773e0ff918fe4f07890aca853e5b33", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15487, "upload_time": "2018-10-16T21:14:04", "url": "https://files.pythonhosted.org/packages/58/96/b499ea677149605799154920d78935029551ac265a6f13e46573e82fec81/dredis-0.0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7d442f5e12f227bd2ed74d4c72f6f32", "sha256": "2d1009144f311bb56c55535d7e707dea8f171053f26f1f42d54592aa555bd428" }, "downloads": -1, "filename": "dredis-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e7d442f5e12f227bd2ed74d4c72f6f32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16986, "upload_time": "2018-10-16T21:14:05", "url": "https://files.pythonhosted.org/packages/b5/a6/97599f85931a3f8f1faaedeb35b033dde103303ee2c19959ee471e4ef7dc/dredis-0.0.7.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "5970e6d30655a526bcbdd20f6e8cd756", "sha256": "d2cefc3bc72190c9db6887c33d3b7ac31b16128fe7ae4ae59c2cb3c8b5058a1f" }, "downloads": -1, "filename": "dredis-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5970e6d30655a526bcbdd20f6e8cd756", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16027, "upload_time": "2018-11-12T18:22:09", "url": "https://files.pythonhosted.org/packages/a1/52/8f79dc5d4ca3b6e98de9ee3d650a931bd72aa725c64c80e0bd8466b48ba0/dredis-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "482f2aaef2c479d9f69e85b8a425bfd9", "sha256": "bfda828ccf017217a163ab0485f6f389801965376bda4ccee363108d4e16eee6" }, "downloads": -1, "filename": "dredis-0.1.0.tar.gz", "has_sig": false, "md5_digest": "482f2aaef2c479d9f69e85b8a425bfd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17493, "upload_time": "2018-11-12T18:22:11", "url": "https://files.pythonhosted.org/packages/59/22/9d80231b79f935caa6756942da296a328980e93a0fb42f064ecd6f769220/dredis-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "528f7a85dd8f8b147d13ca392a00562f", "sha256": "88c5a0268583c9c173599e85c49f43e32e22fce3fbd17bd6e1d0974badf10b31" }, "downloads": -1, "filename": "dredis-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "528f7a85dd8f8b147d13ca392a00562f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16082, "upload_time": "2018-11-19T20:58:05", "url": "https://files.pythonhosted.org/packages/63/62/a372cd8285febfb2e3190db0e2fe4d2ebcfd80fe34e146dc0dd73bca8a8a/dredis-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88d9699491e07fa7f239edf26cce4eae", "sha256": "06dacef56ce12cb90fad40a6fb123b26bf7d88fc94405f9e25f9425a56db7b12" }, "downloads": -1, "filename": "dredis-0.1.1.tar.gz", "has_sig": false, "md5_digest": "88d9699491e07fa7f239edf26cce4eae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17567, "upload_time": "2018-11-19T20:58:07", "url": "https://files.pythonhosted.org/packages/85/77/ef599f38b99e496d82386290f348779c433643985facc6d16f7b193676dc/dredis-0.1.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7a97de5e25cefba0962884f418b731b9", "sha256": "77c5bc8a6ba69d622fd49aaf56a0e8e4a52c16100d21c338e226bdb1695a4206" }, "downloads": -1, "filename": "dredis-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7a97de5e25cefba0962884f418b731b9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17503, "upload_time": "2019-01-24T20:12:22", "url": "https://files.pythonhosted.org/packages/d8/95/5809aee5b589419a65ed3b1eee7111e8c63f452be17a23e938685d9a5de7/dredis-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d13848550f90c519ec7811cdfc5ac5b", "sha256": "2fd357f7d48f4492a2c2ef153b41b323ed47d84b3e4ccdc9fd876fca5c5ab0f3" }, "downloads": -1, "filename": "dredis-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5d13848550f90c519ec7811cdfc5ac5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17551, "upload_time": "2019-01-24T20:12:24", "url": "https://files.pythonhosted.org/packages/2b/0c/0b7eabc8cebb5f47abbebb982e0cd34e2d2afbc00e94051a69a392f615a3/dredis-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "92a9ba51ae67b1794b64ee31b6aa8566", "sha256": "f437e275a7438888fe6ce1d80c41e7a116b44e538a332d2459473b6a425b77d8" }, "downloads": -1, "filename": "dredis-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "92a9ba51ae67b1794b64ee31b6aa8566", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17688, "upload_time": "2019-02-01T22:56:31", "url": "https://files.pythonhosted.org/packages/4f/a9/0de2c13c31a64f418782995e435a94dedef3b32fb51b00f4de3b18b4e669/dredis-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1bf87c8d48d62d1e15e8be8d7c88b17e", "sha256": "aa89ceab7d27d84010d9a0e155f9f2553e115efaa1348b56bc0282c78c7550f1" }, "downloads": -1, "filename": "dredis-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1bf87c8d48d62d1e15e8be8d7c88b17e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17709, "upload_time": "2019-02-01T22:56:33", "url": "https://files.pythonhosted.org/packages/00/72/3cf187616716332caa585c027d7a499cf0e79e378c5582540d9a5010125a/dredis-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "5a2bbaaafe00b89ddc22a292f44d25ea", "sha256": "0c6bc3e3c969d72fd5b82801209e91baba4fc6c6dcd579431b2dba94a9ede21f" }, "downloads": -1, "filename": "dredis-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "5a2bbaaafe00b89ddc22a292f44d25ea", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 17867, "upload_time": "2019-02-15T21:32:14", "url": "https://files.pythonhosted.org/packages/6b/85/3dd6de00f253b06de22561ee6fb4468f6701e7344e7b913d873392242236/dredis-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35a96fb76b240135802eab290c1ad4ae", "sha256": "bf65b26971dc49b1540822510b31ac73be327f6850d694c2e659f3bc38e3bcd9" }, "downloads": -1, "filename": "dredis-1.0.2.tar.gz", "has_sig": false, "md5_digest": "35a96fb76b240135802eab290c1ad4ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17866, "upload_time": "2019-02-15T21:32:16", "url": "https://files.pythonhosted.org/packages/ba/52/158af0408c1433e31384a32f248fbd223d2eb563d7b45722e0db1a6a31ed/dredis-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "2c0d5d3a71211172fa044aa5d0216417", "sha256": "5b410a295410ec7f88966798d4275effe4353056f46514e090befe82c4b85e38" }, "downloads": -1, "filename": "dredis-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "2c0d5d3a71211172fa044aa5d0216417", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 30200, "upload_time": "2019-06-24T17:10:27", "url": "https://files.pythonhosted.org/packages/35/45/0a86ee72ae157b4dd850fa481ee29bad24e9c0ebf72d382e71266ede66cc/dredis-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3955976a7fb29c9050aeef909e10ef92", "sha256": "e97d76b5a64d17cf1c0fd9e929e78c19259f22bd6618b24520da5841885d0d80" }, "downloads": -1, "filename": "dredis-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3955976a7fb29c9050aeef909e10ef92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31519, "upload_time": "2019-06-24T17:10:28", "url": "https://files.pythonhosted.org/packages/77/ac/f86fd3cc9c4f5616e8d8e485ef155d1039b864f71e36630ef32bb0d61c14/dredis-1.1.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "51b2f397c23a9d32d5da73bffd245b28", "sha256": "289e590d4499531e4c8bf198b0d3a17ae53865a9436a2fc473d86aefaf6f2096" }, "downloads": -1, "filename": "dredis-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "51b2f397c23a9d32d5da73bffd245b28", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31023, "upload_time": "2019-06-27T14:05:54", "url": "https://files.pythonhosted.org/packages/42/2e/81d7952b2b0d3a6e9a7bfbbfa583a1f0c2726a6bbaf370e412942c4aa16d/dredis-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "879f748285384c3803a01a6166235728", "sha256": "f88ec479354a8611b4817d331fa6d31eb6c381689cde8e71fea8242e6c4cc895" }, "downloads": -1, "filename": "dredis-2.0.0.tar.gz", "has_sig": false, "md5_digest": "879f748285384c3803a01a6166235728", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32273, "upload_time": "2019-06-27T14:05:55", "url": "https://files.pythonhosted.org/packages/05/dd/39225e3e98f13d8e474e8bfd913fbed2f5f28848962e6aae13e63e3d5a3d/dredis-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "a6be50043f0e41112ff9b2e4c5391b05", "sha256": "c4fdde386feb3928ee39051b19148e3fb93fbf90f525acbc6eae2c86721f3130" }, "downloads": -1, "filename": "dredis-2.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a6be50043f0e41112ff9b2e4c5391b05", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31781, "upload_time": "2019-07-01T15:26:26", "url": "https://files.pythonhosted.org/packages/08/8e/64852ffe5ea3c74a035d974db4da5e300f209f5d415395f8db383796ae93/dredis-2.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "efa9d801317cf9cae49d9985aa2521ad", "sha256": "fcd686bc1987d5e3f8b5730d4d8d8ef6622d4d536f3b8bd35c47295f0e4ee5ab" }, "downloads": -1, "filename": "dredis-2.1.0.tar.gz", "has_sig": false, "md5_digest": "efa9d801317cf9cae49d9985aa2521ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32806, "upload_time": "2019-07-01T15:26:27", "url": "https://files.pythonhosted.org/packages/f3/72/5a948fb621567da026ede5f7611f87c59ce6a07bce1f263909df21c61008/dredis-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "26a08f0f7187b77614fba9664f694e64", "sha256": "5c004b3e4a1978006776291db58d840799ad8f3671e3e33f23222c6425ee3c79" }, "downloads": -1, "filename": "dredis-2.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "26a08f0f7187b77614fba9664f694e64", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33218, "upload_time": "2019-08-26T17:51:36", "url": "https://files.pythonhosted.org/packages/60/ad/00a88e5ff1bbb978f3973696f3595ace1ecc5d2a8763863daf6d16c45016/dredis-2.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d3d11100d842b3ea469c503f15cd3a5", "sha256": "4d13eba37f79c0e93ada3ff786b6906c96feb3b2765d52eab7ac761bda0ac4a2" }, "downloads": -1, "filename": "dredis-2.2.0.tar.gz", "has_sig": false, "md5_digest": "0d3d11100d842b3ea469c503f15cd3a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33623, "upload_time": "2019-08-26T17:51:39", "url": "https://files.pythonhosted.org/packages/da/55/aaff68a5886ecd483d07e5de367247485d975574dcf8a3c2e50b89004c12/dredis-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "39eff874fee4fd53d00a4c94330ac6f7", "sha256": "30f86aeda072bd73b3e58f4f45771bd3f7fa936d0dfb9a8d41869902c5092a4b" }, "downloads": -1, "filename": "dredis-2.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "39eff874fee4fd53d00a4c94330ac6f7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33525, "upload_time": "2019-08-29T16:50:58", "url": "https://files.pythonhosted.org/packages/46/2a/f783becb4ab5b25270b4bc98766b0a9136bd550c2a0158530802a98f0f08/dredis-2.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fcca4d0f8a0efa151caf38f2d8bf26ba", "sha256": "3cf381638857914fc986a15c24711f052bba115047f7ddfab8d67d99ceae265e" }, "downloads": -1, "filename": "dredis-2.3.0.tar.gz", "has_sig": false, "md5_digest": "fcca4d0f8a0efa151caf38f2d8bf26ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33965, "upload_time": "2019-08-29T16:51:00", "url": "https://files.pythonhosted.org/packages/80/69/64aca22aa1ca798d06118d900c966bc5660e7835b89c378e477810b2e4ca/dredis-2.3.0.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "af0886daf62882e0c27cfe773a2787b9", "sha256": "b2af9a72208d6a2bddd0ec9673a0b082a35f6dc3617ee2e9e7e50d60c33baf73" }, "downloads": -1, "filename": "dredis-2.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "af0886daf62882e0c27cfe773a2787b9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34483, "upload_time": "2019-09-04T21:58:41", "url": "https://files.pythonhosted.org/packages/6d/a1/412919c06f859e57a4a5563625377bcf4ebed55a6d710ff5ad47478848b6/dredis-2.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53211f96a01468b087428debd9b7bf17", "sha256": "8fa7b154e4c4fc843a678f58a9119176532f061b84797ffd6034548553602131" }, "downloads": -1, "filename": "dredis-2.4.0.tar.gz", "has_sig": false, "md5_digest": "53211f96a01468b087428debd9b7bf17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34615, "upload_time": "2019-09-04T21:58:43", "url": "https://files.pythonhosted.org/packages/a6/b5/af7d0d0ef013ad7579fc3e7d46b54e78389f984546d38ed42e188eab816a/dredis-2.4.0.tar.gz" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "59daa034a1ce1561005e7c84ab36f518", "sha256": "73950fb4fdd0ea43f8a854447dc54064c98d56df08ef499ddbb61cd2b5e235d7" }, "downloads": -1, "filename": "dredis-2.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "59daa034a1ce1561005e7c84ab36f518", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34502, "upload_time": "2019-09-12T21:09:59", "url": "https://files.pythonhosted.org/packages/f5/57/947274b5d92f602ba600410793afd5a532688c5808ad2dcb01b1433d5ec7/dredis-2.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8065c807ae08d116d2f2c00192abb255", "sha256": "ec437d4284994b273b4eedb124abda083b290a4be9c9a06b6f072380c03dbae0" }, "downloads": -1, "filename": "dredis-2.4.1.tar.gz", "has_sig": false, "md5_digest": "8065c807ae08d116d2f2c00192abb255", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34610, "upload_time": "2019-09-12T21:10:01", "url": "https://files.pythonhosted.org/packages/ce/59/6c25af55418e85f709798a3535a3dd35585ed844e5d5518a3b870e44098f/dredis-2.4.1.tar.gz" } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "d32f59e760a4448d362af9177a4a7aab", "sha256": "b2a5e2fa7de0899ed2d123babc978a337d1bdeeda9bc5e65dcd67113e70a69a6" }, "downloads": -1, "filename": "dredis-2.4.2-py2-none-any.whl", "has_sig": false, "md5_digest": "d32f59e760a4448d362af9177a4a7aab", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34530, "upload_time": "2019-09-12T21:23:32", "url": "https://files.pythonhosted.org/packages/f0/96/3bddec81db7c924eaf0720372bc83a4e3efbb4c03f53c29397c0650236df/dredis-2.4.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc773ec764cd2c2814e5344445ecaddc", "sha256": "a5cd85beddd05f75df58ef15fece4a1878271a0559f97885eefe7c9c9c433ee9" }, "downloads": -1, "filename": "dredis-2.4.2.tar.gz", "has_sig": false, "md5_digest": "bc773ec764cd2c2814e5344445ecaddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34630, "upload_time": "2019-09-12T21:23:34", "url": "https://files.pythonhosted.org/packages/34/36/8b940ad8dd29abb5364feea86dfd828b9ff18062e2a4e013ce0f47d5f259/dredis-2.4.2.tar.gz" } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "abadcd493968f0795f8a46013b0de47e", "sha256": "3b1a12b9267c661bd9e36d5d998279a84c73d739956d124794546761bf3afb72" }, "downloads": -1, "filename": "dredis-2.4.3-py2-none-any.whl", "has_sig": false, "md5_digest": "abadcd493968f0795f8a46013b0de47e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34535, "upload_time": "2019-09-12T21:27:19", "url": "https://files.pythonhosted.org/packages/2b/bf/3c38e47a8a3a56eaecc2ab3e61bcd86e5fc9ce90d11ee98c1686f8fae39a/dredis-2.4.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "534b9225f9dcd28834f6f8492037cc84", "sha256": "2769c156fc2a5765927df7b3e074300ebbed8348c9872bbc68c2191ead6ae85e" }, "downloads": -1, "filename": "dredis-2.4.3.tar.gz", "has_sig": false, "md5_digest": "534b9225f9dcd28834f6f8492037cc84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34629, "upload_time": "2019-09-12T21:27:21", "url": "https://files.pythonhosted.org/packages/8e/79/bfe8ee097931490ab88772c50902837f5e1a53f4523c683e9370a0219dc9/dredis-2.4.3.tar.gz" } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "a3811da8e721c189e0da077e821f9f54", "sha256": "7aab009b9e6a1cbd4e0119f0865d6652c666eeab64d5d7227fa3d47777e7a2ae" }, "downloads": -1, "filename": "dredis-2.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a3811da8e721c189e0da077e821f9f54", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34687, "upload_time": "2019-09-20T18:44:11", "url": "https://files.pythonhosted.org/packages/6c/98/35f2025b4ac1a9eff9ace9ac431aa4e61cbf35958a2b5891a00a966ced39/dredis-2.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33f9470359f102951df59d0bff4d45c0", "sha256": "4d278a43421d36b5ca7496c61312a910fd609d0afacf4b72702c31a1e4638529" }, "downloads": -1, "filename": "dredis-2.5.0.tar.gz", "has_sig": false, "md5_digest": "33f9470359f102951df59d0bff4d45c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34806, "upload_time": "2019-09-20T18:44:13", "url": "https://files.pythonhosted.org/packages/05/48/ddaaf4c5b1a38547e2cb47f7a1907c5350a7033da4add78f1056d7315f1b/dredis-2.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a3811da8e721c189e0da077e821f9f54", "sha256": "7aab009b9e6a1cbd4e0119f0865d6652c666eeab64d5d7227fa3d47777e7a2ae" }, "downloads": -1, "filename": "dredis-2.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a3811da8e721c189e0da077e821f9f54", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34687, "upload_time": "2019-09-20T18:44:11", "url": "https://files.pythonhosted.org/packages/6c/98/35f2025b4ac1a9eff9ace9ac431aa4e61cbf35958a2b5891a00a966ced39/dredis-2.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33f9470359f102951df59d0bff4d45c0", "sha256": "4d278a43421d36b5ca7496c61312a910fd609d0afacf4b72702c31a1e4638529" }, "downloads": -1, "filename": "dredis-2.5.0.tar.gz", "has_sig": false, "md5_digest": "33f9470359f102951df59d0bff4d45c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34806, "upload_time": "2019-09-20T18:44:13", "url": "https://files.pythonhosted.org/packages/05/48/ddaaf4c5b1a38547e2cb47f7a1907c5350a7033da4add78f1056d7315f1b/dredis-2.5.0.tar.gz" } ] }